Now can alternatively generate a static page for a URL from pages, or dynamically return it with c.Render from views. Did this for games and streams.

main
Zed A. Shaw 5 days ago
parent cb537328ff
commit d095bc9ff4
  1. 10
      api/handlers.go
  2. 4
      main.go
  3. 89
      public/stream/1/index.html
  4. 0
      views/game.html
  5. 36
      views/layouts/main.html
  6. 0
      views/stream.html

@ -22,6 +22,14 @@ func GetApiLogout(c *fiber.Ctx) error {
return c.Redirect("/")
}
func GetPageStream(c *fiber.Ctx) error {
return c.Render("stream", fiber.Map{})
}
func GetPageGame(c *fiber.Ctx) error {
return c.Render("game", fiber.Map{})
}
func GetApiStream(c *fiber.Ctx) error {
sql, args, err := sq.Select("*").From("stream").ToSql()
err = data.SelectJson[data.Stream](c, err, sql, args...)
@ -118,6 +126,8 @@ func Setup(app *fiber.App) {
CacheDuration: 1 * time.Nanosecond,
})
app.Get("/stream/:id/", GetPageStream)
app.Get("/game/:id/:name/", GetPageGame)
app.Get("/api/stream", GetApiStream)
app.Get("/api/logout", GetApiLogout)
app.Get("/api/stream/:id", GetApiStreamId)

@ -9,8 +9,8 @@ import (
"github.com/gofiber/fiber/v2/middleware/logger"
"github.com/gofiber/template/html/v2"
_ "github.com/mattn/go-sqlite3"
recov "github.com/gofiber/fiber/v2/middleware/recover"
_ "github.com/mattn/go-sqlite3"
recov "github.com/gofiber/fiber/v2/middleware/recover"
"zedshaw.games/webapp/api"
"zedshaw.games/webapp/data"

@ -1,89 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<link rel="stylesheet" href="/global.css">
<link rel="stylesheet" href="/color.css">
<link rel="stylesheet" href="/blockstart.css">
<script defer src="/js/alpine.js"></script>
<script src="/js/code.js"></script>
<title>ZedShaw.games</title>
</head>
<body data-testid="stream-1-index-page">
<header>
<blockstart style="background-color: var(--value0)">
<block style="--value: 0; --text: 9" class="horizontal">
<a href="/">🏡</a>
<a href="/live/">Live</a>
<a href="/stream/">Streams</a>
<a href="/game/">Games</a>
<a href="/register/">Register</a>
<a href="/login/">Login</a>
</block>
</blockstart>
</header>
<script>
let req = new GetJson("/api/stream/1");
let link_req = new GetJson("/api/stream/1/links");
</script>
<div x-init="Stream = await req.theData()" x-data="{Stream: {}}">
<blockstart>
<block style="--value: 7">
<h1 x-text="Stream.title"></h1>
<div>
<p x-text="Stream.description"></p>
</div>
</block>
<block>
<p>Qui animated corpse, cricket bat max brucks terribilem incessu zomby. The voodoo sacerdos flesh eater, suscitat mortuos comedere carnem virus. Zonbi tattered for solum oculi eorum defunctis go lum cerebro. Nescio brains an Undead zombies. Sicut malus putrid voodoo horror.</p>
</block>
<block>
<h2>Links Posted</h2>
<ul x-init="links = await link_req.theData()" x-data="{links: {}}">
<template x-for="item in links">
<li><a x-text="item.description" x-bind:href="item.url"></a></li>
</template>
</ul>
</block>
<block style="--value: 7; --border: 1px;" class="horizontal">
<grid style="--cols: 2">
<shape>Left Image</shape>
<div>
<h3>I stream on Twitch.</h3>
<p>I stream every day at 10AM/10PM EST time. 60% of the time it's a chill laid back stream with only programming and a bit of talking about programming. 30% of the time it's art for games I'm making. 10% of the time it's games I'm playing.</p>
<a href="https://twitch.tv/zedashaw"><button style="--value: 2; --text: 9">Watch me on Twitch</button></a>
</div>
</grid>
</block>
</blockstart>
</div>
<footer>
<blockstart style="--value: 0; --text: 9">
<block class="horizontal">
<shape style="--w: 200px; --h: 250px">Zed Pic</shape>
<div>
<h3>About Me</h3>
<p>Blah blah about me.</p>
</div>
<div>
<h3>Other Projects</h3>
<p>Some other links to stuff.</p>
</div>
</block>
</blockstart>
</footer>
</body>
</html>

@ -5,10 +5,40 @@
<link rel="stylesheet" href="/global.css">
<link rel="stylesheet" href="/color.css">
<link rel="stylesheet" href="/blockstart.css">
<title>{{.Title}}</title>
<script defer src="/js/alpine.js"></script>
<script src="/js/code.js"></script>
<title>ZedShaw.games</title>
</head>
<body data-testid="{{.PageId}}">
<header>
<blockstart style="background-color: var(--value0)">
<block style="--value: 0; --text: 9" class="horizontal">
<a href="/">🏡</a>
<a href="/live/">Live</a>
<a href="/stream/">Streams</a>
<a href="/game/">Games</a>
<a href="/register/">Register</a>
<a href="/login/">Login</a>
</block>
</blockstart>
</header>
<body>
{{embed}}
{{embed}}
<footer>
<blockstart style="--value: 0; --text: 9">
<block class="horizontal">
<shape style="--w: 200px; --h: 250px">Zed Pic</shape>
<div>
<h3>About Me</h3>
<p>Blah blah about me.</p>
</div>
<div>
<h3>Other Projects</h3>
<p>Some other links to stuff.</p>
</div>
</block>
</blockstart>
</footer>
</body>
</html>

Loading…
Cancel
Save