mirror of
https://codeberg.org/VnPower/PixivFE
synced 2024-12-06 19:16:23 +01:00
fix all templates to make test pass
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
{{extends "layout/default.jet.html"}}
|
||||
{{block body()}}
|
||||
{{ extends "layout/default" }}
|
||||
{{ block body() }}
|
||||
<div class="container">
|
||||
<h1>About PixivFE</h1>
|
||||
<p>PixivFE is a Pixiv frontend. It lets you enjoy art on Pixiv without needless interruption.</p>
|
||||
@@ -7,22 +7,22 @@
|
||||
<h2>Server information</h2>
|
||||
<ul>
|
||||
<li>
|
||||
<b>Version:</b> {{ Version }}<br />PixivFE's version this server is
|
||||
<b>Version:</b> {{ .Version }}<br />PixivFE's version this server is
|
||||
running
|
||||
</li>
|
||||
<li>
|
||||
<b>Started PixivFE (UTC)</b>: {{ Time }} <br />The date when PixivFE
|
||||
<b>Started PixivFE (UTC)</b>: {{ .Time }} <br />The date when PixivFE
|
||||
started on this server
|
||||
</li>
|
||||
<li>
|
||||
<b>Default image proxy server</b>: {{ ImageProxy }}<br />The default image
|
||||
<b>Default image proxy server</b>: {{ .ImageProxy }}<br />The default image
|
||||
proxy server that was set on this server, used to proxy images from
|
||||
i.pximg.net
|
||||
</li>
|
||||
<li>
|
||||
<b>Accept-Language header</b>: {{ AcceptLanguage }}<br />The value of the
|
||||
<b>Accept-Language header</b>: {{ .AcceptLanguage }}<br />The value of the
|
||||
Accept-Language header this server uses to request to Pixiv's APIs.
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
{{end}}
|
||||
{{ end }}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{{extends "layout/default.jet.html"}}
|
||||
{{block body()}}
|
||||
{{ extends "layout/default" }}
|
||||
{{ block body() }}
|
||||
<div class="container illust" id="checkpoint">
|
||||
{{ include "components/artwork" .Illust }}
|
||||
<div class="illust-other-works">
|
||||
@@ -54,4 +54,4 @@
|
||||
{{ include "components/small-tn" .Illust.RelatedWorks }}
|
||||
</div>
|
||||
</div>
|
||||
{{end}}
|
||||
{{ end }}
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
{{extends "layout/default.jet.html"}}
|
||||
{{block body()}}
|
||||
{{ range Artworks }}
|
||||
{{ extends "layout/default" }}
|
||||
{{ block body() }}
|
||||
{{ range .Artworks }}
|
||||
<div class="container illust">
|
||||
{{ include "components/artwork" . }}
|
||||
</div>
|
||||
{{ end }}{{end}}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
|
||||
@@ -1,23 +1,23 @@
|
||||
{{extends "layout/default.jet.html"}}
|
||||
{{block body()}}
|
||||
{{ extends "layout/default" }}
|
||||
{{ block body() }}
|
||||
<div class="container">
|
||||
<h1>Discover artworks</h1>
|
||||
<div class="switcher">
|
||||
<div class="switch-title">Type</div>
|
||||
<a href="/discovery" class="switch-button">Artworks</a>
|
||||
<a href="/discovery/novel" class="switch-button">Novels</a>
|
||||
<a href="/discovery" class="switch-button">.Artworks</a>
|
||||
<a href="/discovery/novel" class="switch-button">.Novels</a>
|
||||
</div>
|
||||
<div class="switcher">
|
||||
<div class="switch-title">Filter</div>
|
||||
<a href='{{replaceQuery(Queries, "mode", "all")}}' class="switch-button">All</a>
|
||||
<a href='{{replaceQuery(Queries, "mode", "safe")}}' class="switch-button">Safe</a>
|
||||
<a href='{{replaceQuery(Queries, "mode", "r18")}}' class="switch-button">R-18</a>
|
||||
<a href='{{replaceQuery(.Queries, "mode", "all")}}' class="switch-button">All</a>
|
||||
<a href='{{replaceQuery(.Queries, "mode", "safe")}}' class="switch-button">Safe</a>
|
||||
<a href='{{replaceQuery(.Queries, "mode", "r18")}}' class="switch-button">R-18</a>
|
||||
</div>
|
||||
<div class="artwork-container">
|
||||
{{ include "components/small-tn" Artworks }}
|
||||
{{ include "components/small-tn" .Artworks }}
|
||||
</div>
|
||||
<div class="pagination">
|
||||
<a href="" class="pagination-button">Reload</a>
|
||||
</div>
|
||||
</div>
|
||||
{{end}}
|
||||
{{ end }}
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
{{extends "layout/default.jet.html"}}
|
||||
{{block body()}}
|
||||
{{ extends "layout/default" }}
|
||||
{{ block body() }}
|
||||
<div class="container error">
|
||||
<h1>An error occured</h1>
|
||||
<p>This is what you got instead ¯\_(ツ)_/¯</p>
|
||||
<br />
|
||||
{{ Error }}
|
||||
{{ .Error }}
|
||||
<hr />
|
||||
<p>If you think this error should not occur, you can help
|
||||
us by submitting an issue to the <a href="https://codeberg.org/VnPower/PixivFE/issues/new">upstream repository</a>!
|
||||
</p>
|
||||
</div>
|
||||
{{end}}
|
||||
{{ end }}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{{extends "layout/default.jet.html"}}
|
||||
{{block body()}}
|
||||
{{ extends "layout/default" }}
|
||||
{{ block body() }}
|
||||
<div class="container">
|
||||
<h1>Newest works from people you follow</h1>
|
||||
<div class="switcher">
|
||||
@@ -8,12 +8,12 @@
|
||||
<a href="/following_works?mode=safe&page=1" class="switch-button">Safe</a>
|
||||
<a href="/following_works?mode=r18&page=1" class="switch-button">R-18</a>
|
||||
</div>
|
||||
<div class="artwork-container">{{ include "components/small-tn" Artworks }}</div>
|
||||
<div class="artwork-container">{{ include "components/small-tn" .Artworks }}</div>
|
||||
<div class="pagination">
|
||||
{{ url := "/self/following_works" + "?mode=" + Mode + "&page=" }}
|
||||
<small>Page {{ CurPage }}</small>
|
||||
{{ url := "/self/following_works" + "?mode=" + .Mode + "&page=" }}
|
||||
<small>Page {{ .CurPage }}</small>
|
||||
<br />
|
||||
{{ raw: createPaginator(url, "#checkpoint", Page, -1) }}
|
||||
{{ raw: createPaginator(url, "#checkpoint", .Page, -1) }}
|
||||
</div>
|
||||
</div>
|
||||
{{end}}
|
||||
{{ end }}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{{extends "layout/default.jet.html"}}
|
||||
{{block body()}}
|
||||
{{ extends "layout/default" }}
|
||||
{{ block body() }}
|
||||
|
||||
<div class="container">
|
||||
{{ if !.LoggedIn }}
|
||||
@@ -41,4 +41,4 @@
|
||||
|
||||
{{ end }}
|
||||
</div>
|
||||
{{end}}
|
||||
{{ end }}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{{extends "layout/default.jet.html"}}
|
||||
{{block body()}}
|
||||
{{ extends "layout/default" }}
|
||||
{{ block body() }}
|
||||
<div class="container">
|
||||
<h1>Newest works from all users</h1>
|
||||
<div class="switcher">
|
||||
@@ -7,6 +7,6 @@
|
||||
<a href="/newest" class="switch-button">Safe</a>
|
||||
<a href="/newest?mode=r18" class="switch-button">R-18</a>
|
||||
</div>
|
||||
<div class="artwork-container">{{ include "components/small-tn" Items }}</div>
|
||||
<div class="artwork-container">{{ include "components/small-tn" .Items }}</div>
|
||||
</div>
|
||||
{{end}}
|
||||
{{ end }}
|
||||
|
||||
+23
-23
@@ -1,35 +1,35 @@
|
||||
{{extends "layout/default.jet.html"}}
|
||||
{{block body()}}
|
||||
{{ extends "layout/default" }}
|
||||
{{ block body() }}
|
||||
<div class="container novel" id="checkpoint">
|
||||
<div class="novel-detail">
|
||||
<div class="novel-cover">
|
||||
<a href="{{ Novel.CoverURL }}">
|
||||
<img src="{{ Novel.CoverURL }}" alt="{{ Novel.Title }}" />
|
||||
<a href="{{ .Novel.CoverURL }}">
|
||||
<img src="{{ .Novel.CoverURL }}" alt="{{ .Novel.Title }}" />
|
||||
</a>
|
||||
</div>
|
||||
<div class="novel-metadata">
|
||||
<div class="novel-title">{{ Novel.Title }}</div>
|
||||
<small><span>{{ Novel.WordCount }} word(s)</span> <span>{{ floor: Novel.ReadingTime / 60 }}
|
||||
<div class="novel-title">{{ .Novel.Title }}</div>
|
||||
<small><span>{{ .Novel.WordCount }} word(s)</span> <span>{{ floor: .Novel.ReadingTime / 60 }}
|
||||
min</span></small>
|
||||
<p class="novel-description">{{ raw: Novel.Description }}</p>
|
||||
<p class="novel-description">{{ raw: .Novel.Description }}</p>
|
||||
|
||||
<div class="illust-tags">
|
||||
{{ if Novel.AiType == 2 }}
|
||||
{{ if .Novel.AiType == 2 }}
|
||||
<span class="illust-tag">
|
||||
<span class="illust-tag-name" id="highlight">AI-generated</span>
|
||||
</span>
|
||||
{{ end }}
|
||||
{{ if Novel.IsOriginal }}
|
||||
{{ if .Novel.IsOriginal }}
|
||||
<span class="illust-tag">
|
||||
<span class="illust-tag-name">Original</span>
|
||||
</span>
|
||||
{{ end }}
|
||||
{{ if Novel.Genre != "0" }}
|
||||
{{ if .Novel.Genre != "0" }}
|
||||
<span class="illust-tag">
|
||||
<span class="illust-tag-name">{{ novelGenre: Novel.Genre }}</span>
|
||||
<span class="illust-tag-name">{{ novelGenre: .Novel.Genre }}</span>
|
||||
</span>
|
||||
{{ end }}
|
||||
{{ range Novel.Tags.Tags }} {{ if isEmphasize(.Name) }}
|
||||
{{ range .Novel.Tags.Tags }} {{ if isEmphasize(.Name) }}
|
||||
<span class="illust-tag">
|
||||
<span class="illust-tag-name" id="highlight">{{ .Name }}</span>
|
||||
</span>
|
||||
@@ -43,19 +43,19 @@
|
||||
<div class="illust-tags">
|
||||
<span class="illust-tag-attr">
|
||||
<img src="/img/eye.png" alt="Views" />
|
||||
{{ Novel.Views }}
|
||||
{{ .Novel.Views }}
|
||||
</span>
|
||||
<span class="illust-tag-attr">
|
||||
<img src="/img/heart-solid.png" alt="Bookmarks" />
|
||||
{{ Novel.Bookmarks }}
|
||||
{{ .Novel.Bookmarks }}
|
||||
</span>
|
||||
<span class="illust-tag-attr">
|
||||
<img src="/img/like.png" alt="Likes" />
|
||||
{{ Novel.Likes }}
|
||||
{{ .Novel.Likes }}
|
||||
</span>
|
||||
<span class="illust-tag-attr">
|
||||
<img src="/img/calendar.png" alt="Date" />
|
||||
{{ parseTime: Novel.CreateDate }}
|
||||
{{ parseTime: .Novel.CreateDate }}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
@@ -108,25 +108,25 @@
|
||||
</div>
|
||||
</div>
|
||||
<!-- ----------- -->
|
||||
<div class="novel-content" id="content" data-font="{{ FontType }}" data-lang="{{ Language }}"
|
||||
data-view="{{ ViewMode }}">
|
||||
<div class="novel-content" id="content" data-font="{{ .FontType }}" data-lang="{{ .Language }}"
|
||||
data-view="{{ .ViewMode }}">
|
||||
<div class="novel-content-text">
|
||||
{{ raw: renderNovel(Novel.Content) }}
|
||||
{{ raw: renderNovel(.Novel.Content) }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="novel-attr">
|
||||
<a href="/users/{{ User.ID }}"><img src="{{ User.Avatar }}" alt="{{ User.Name }}" class="novel-avatar" />
|
||||
<a href="/users/{{ .User.ID }}"><img src="{{ .User.Avatar }}" alt="{{ .User.Name }}" class="novel-avatar" />
|
||||
</a>
|
||||
<div class="attr-wrap">
|
||||
<div class="novel-title">
|
||||
<a href="/users/{{ User.ID }}">{{ User.Name }}</a>
|
||||
<a href="/users/{{ .User.ID }}">{{ .User.Name }}</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="novel-container">
|
||||
{{ range NovelRelated }}
|
||||
{{ range .NovelRelated }}
|
||||
{{ include "components/novel-tn" . }}
|
||||
{{ end }}
|
||||
</div>
|
||||
</div>
|
||||
{{end}}
|
||||
{{ end }}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{{extends "layout/default.jet.html"}}
|
||||
{{block body()}}
|
||||
{{ extends "layout/default" }}
|
||||
{{ block body() }}
|
||||
<div class="container">
|
||||
<h1>Discover novels</h1>
|
||||
<div class="switcher">
|
||||
@@ -15,7 +15,7 @@
|
||||
<a href="{{url}}r18" class="switch-button">R-18</a>
|
||||
</div>
|
||||
<div class="novel-container">
|
||||
{{ range Novels }}
|
||||
{{ range .Novels }}
|
||||
{{ include "components/novel-tn" . }}
|
||||
{{ end }}
|
||||
</div>
|
||||
@@ -23,4 +23,4 @@
|
||||
<a href="" class="pagination-button">Reload</a>
|
||||
</div>
|
||||
</div>
|
||||
{{end}}
|
||||
{{ end }}
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
{{extends "layout/default.jet.html"}}
|
||||
{{block body()}}
|
||||
{{ extends "layout/default" }}
|
||||
{{ block body() }}
|
||||
<div class="container illust">
|
||||
<h2>{{Article.Title}}</h2>
|
||||
{{ range _, desc := Article.Description }}
|
||||
<h2>{{.Article.Title}}</h2>
|
||||
{{ range _, desc := .Article.Description }}
|
||||
<p>{{desc}}</p>
|
||||
{{ end }}
|
||||
|
||||
{{ range _, item := Article.Items }}
|
||||
{{ range _, item := .Article.Items }}
|
||||
<div class="illust-images">
|
||||
|
||||
<div class="illust-attr">
|
||||
@@ -27,4 +27,4 @@
|
||||
</div>
|
||||
{{ end }}
|
||||
</div>
|
||||
{{end}}
|
||||
{{ end }}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{{extends "layout/default.jet.html"}}
|
||||
{{block body()}}
|
||||
{{ extends "layout/default" }}
|
||||
{{ block body() }}
|
||||
<div class="container">
|
||||
<div class="vision-container">
|
||||
{{ range _, article := Data }}
|
||||
{{ range _, article := .Data }}
|
||||
<div class="vision-preview vision-preview-large">
|
||||
<div class="vision-thumbnail">
|
||||
<img src="{{article.Thumbnail}}" alt="{{article.Title}}" />
|
||||
@@ -26,4 +26,4 @@
|
||||
{{ end }}
|
||||
</div>
|
||||
</div>
|
||||
{{end}}
|
||||
{{ end }}
|
||||
|
||||
+18
-18
@@ -1,20 +1,20 @@
|
||||
{{extends "layout/default.jet.html"}}
|
||||
{{block body()}}
|
||||
{{ extends "layout/default" }}
|
||||
{{ import "components/switcher" }}
|
||||
{{ block body() }}
|
||||
|
||||
<div class="container">
|
||||
<h1>{{ Title }}</h1>
|
||||
<h1>{{ .Title }}</h1>
|
||||
|
||||
<div class="switcher">
|
||||
{{ Mode := isset(Queries.mode) ? Queries.mode : "daily" }}
|
||||
{{ Content := isset(Queries.content) ? Queries.content : "all" }}
|
||||
{{ Mode := isset(.Queries.mode) ? .Queries.mode : "daily" }}
|
||||
{{ Content := isset(.Queries.content) ? .Queries.content : "all" }}
|
||||
|
||||
{{ url := "" }}
|
||||
{{ if Mode == "original" || Mode == "male" || Mode == "female" || Mode == ""}}
|
||||
{{ url = "/ranking?date=" + Data.CurrentDate +
|
||||
{{ url = "/ranking?date=" + .Data.CurrentDate +
|
||||
"&page=1&content=" }}
|
||||
{{ else }}
|
||||
{{ url = "/ranking?mode=" + Mode + "&date=" + Data.CurrentDate + "&page=1&content=" }}
|
||||
{{ url = "/ranking?mode=" + Mode + "&date=" + .Data.CurrentDate + "&page=1&content=" }}
|
||||
{{ end }}
|
||||
<div class="switch-title">Content</div>
|
||||
{{ path := slice("all", "illust", "manga", "ugoira") }}
|
||||
@@ -24,7 +24,7 @@
|
||||
<br />
|
||||
|
||||
<div class="switcher">
|
||||
{{ url := "/ranking?content=" + Content +"&date=" + Data.CurrentDate
|
||||
{{ url := "/ranking?content=" + Content +"&date=" + .Data.CurrentDate
|
||||
+ "&page=1&mode=" }}
|
||||
<div class="switch-title">Modes</div>
|
||||
|
||||
@@ -56,13 +56,13 @@
|
||||
<div class="switcher">
|
||||
{{ url := "/ranking?content=" + Content + "&mode=" + Mode +
|
||||
"&page=1" }}
|
||||
<div class="switch-title">Date (current: {{ Data.CurrentDate }})</div>
|
||||
{{ if Data.PrevDate != "false" }}
|
||||
<a href="{{ url }}&date={{Data.PrevDate}}" class="switch-button"
|
||||
<div class="switch-title">Date (current: {{ .Data.CurrentDate }})</div>
|
||||
{{ if .Data.PrevDate != "false" }}
|
||||
<a href="{{ url }}&date={{.Data.PrevDate}}" class="switch-button"
|
||||
>Yesterday</a
|
||||
>
|
||||
{{ end }} {{ if Data.NextDate != "false" }}
|
||||
<a href="{{ url }}&date={{Data.NextDate}}" class="switch-button"
|
||||
{{ end }} {{ if .Data.NextDate != "false" }}
|
||||
<a href="{{ url }}&date={{.Data.NextDate}}" class="switch-button"
|
||||
>Next day</a
|
||||
>
|
||||
{{ end }}
|
||||
@@ -73,15 +73,15 @@
|
||||
<br />
|
||||
|
||||
<div class="artwork-container">
|
||||
{{ include "components/ranking-tn" Data.Contents }}
|
||||
{{ include "components/ranking-tn" .Data.Contents }}
|
||||
</div>
|
||||
|
||||
<div class="pagination">
|
||||
{{ url := "/ranking?content=" + Content +"&date=" + Data.CurrentDate
|
||||
{{ url := "/ranking?content=" + Content +"&date=" + .Data.CurrentDate
|
||||
+ "&mode=" + Mode + "&page=" }}
|
||||
<small>Page {{ Page }}/{{ PageLimit }}</small>
|
||||
<small>Page {{ .Page }}/{{ .PageLimit }}</small>
|
||||
<br />
|
||||
{{ raw: createPaginator(url, "#checkpoint", Page, PageLimit) }}
|
||||
{{ raw: createPaginator(url, "#checkpoint", .Page, .PageLimit) }}
|
||||
</div>
|
||||
</div>
|
||||
{{end}}
|
||||
{{ end }}
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
{{extends "layout/default.jet.html"}}
|
||||
{{block body()}}
|
||||
{{ extends "layout/default" }}
|
||||
{{ block body() }}
|
||||
<div class="container">
|
||||
<h1>Ranking calendar ({{ ThisMonth.MonthLiteral }} {{ Year }})</h1>
|
||||
<h1>Ranking calendar ({{ .ThisMonth.MonthLiteral }} {{ .Year }})</h1>
|
||||
<div class="switcher">
|
||||
{{ url := "/rankingCalendar?date=" + ThisMonth.Link + "&mode=" }}
|
||||
{{ url := "/rankingCalendar?date=" + .ThisMonth.Link + "&mode=" }}
|
||||
<span class="switch-title">Modes</span>
|
||||
<a href="{{ url }}daily" class="switch-button">Daily</a>
|
||||
<a href="{{ url }}weekly" class="switch-button">Weekly</a>
|
||||
@@ -24,12 +24,12 @@
|
||||
|
||||
<div>
|
||||
<form action="/rankingCalendar" method="post">
|
||||
<input type="hidden" name="mode" value="{{ Mode }}" />
|
||||
<input type="hidden" name="mode" value="{{ .Mode }}" />
|
||||
<label for="date">
|
||||
Date picker (mm/dd/yyyy):
|
||||
</label>
|
||||
<span>
|
||||
<input type="date" name="date" min="2007-09-01" max="{{Year}}-{{ ThisMonth.MonthPadded }}-01" value="{{Year}}-{{ ThisMonth.MonthPadded }}-01"/>
|
||||
<input type="date" name="date" min="2007-09-01" max="{{.Year}}-{{ .ThisMonth.MonthPadded }}-01" value="{{.Year}}-{{ .ThisMonth.MonthPadded }}-01"/>
|
||||
</span>
|
||||
<span>
|
||||
<input type="submit" value="Go" />
|
||||
@@ -49,13 +49,13 @@
|
||||
<div>Sat</div>
|
||||
</div>
|
||||
<div class="calendar-board">
|
||||
{{ raw: Render }}
|
||||
{{ raw: .Render }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="pagination">
|
||||
{{ url := "/rankingCalendar?mode=" + Mode + "&date=" }}
|
||||
<a href="{{ url }}{{ MonthBefore.Link }}" class="pagination-button ">Last month</a>
|
||||
<a href="{{ url }}{{ MonthAfter.Link }}" class="pagination-button ">Next month</a>
|
||||
{{ url := "/rankingCalendar?mode=" + .Mode + "&date=" }}
|
||||
<a href="{{ url }}{{ .MonthBefore.Link }}" class="pagination-button ">Last month</a>
|
||||
<a href="{{ url }}{{ .MonthAfter.Link }}" class="pagination-button ">Next month</a>
|
||||
</div>
|
||||
</div>
|
||||
{{end}}
|
||||
{{ end }}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{{extends "layout/default.jet.html"}}
|
||||
{{block body()}}
|
||||
{{ extends "layout/default" }}
|
||||
{{ block body() }}
|
||||
<div class="container" data-hx-boost="false">
|
||||
<h1>Settings</h1>
|
||||
<p>
|
||||
@@ -58,7 +58,7 @@
|
||||
<input type="radio" name="image-proxy" required="true" value="" />
|
||||
No (use built-in proxy)
|
||||
</label>
|
||||
{{ range WorkingProxyList }}
|
||||
{{ range .WorkingProxyList }}
|
||||
<label>
|
||||
<input type="radio" name="image-proxy" required="true" value="{{.}}" />
|
||||
{{.}}
|
||||
@@ -66,7 +66,7 @@
|
||||
{{ end }}
|
||||
<details>
|
||||
<summary>See all built-in proxies</summary>
|
||||
{{ range ProxyList }}
|
||||
{{ range .ProxyList }}
|
||||
<label>
|
||||
<input type="radio" name="image-proxy" required="true" value="{{.}}" />
|
||||
{{.}}
|
||||
@@ -187,4 +187,4 @@
|
||||
<input class="critical" type="submit" value="Reset all cookies/preferences" />
|
||||
</form>
|
||||
</div>
|
||||
{{end}}
|
||||
{{ end }}
|
||||
|
||||
+37
-37
@@ -1,28 +1,28 @@
|
||||
{{extends "layout/default.jet.html"}}
|
||||
{{block body()}}
|
||||
{{ extends "layout/default" }}
|
||||
{{ import "components/switcher" }}
|
||||
{{ block body() }}
|
||||
|
||||
<div class="container">
|
||||
<div class="tag-header">
|
||||
{{ if Tag.Metadata.ID }}
|
||||
<a href="/artworks/{{ Tag.Metadata.ID }}">
|
||||
<img class="tag-thumbnail" src="{{ Tag.Metadata.Image }}" alt="{{ Tag.Name }}" />
|
||||
{{ if .Tag.Metadata.ID }}
|
||||
<a href="/artworks/{{ .Tag.Metadata.ID }}">
|
||||
<img class="tag-thumbnail" src="{{ .Tag.Metadata.Image }}" alt="{{ .Tag.Name }}" />
|
||||
</a>
|
||||
{{ end }}
|
||||
|
||||
<div class="tag-details">
|
||||
<b class="main-tag">#{{ Tag.Name }}</b>
|
||||
<span class="translated-tag">{{ Tag.Metadata.Name }}</span>
|
||||
<b class="main-tag">#{{ .Tag.Name }}</b>
|
||||
<span class="translated-tag">{{ .Tag.Metadata.Name }}</span>
|
||||
<br />
|
||||
<br />
|
||||
<span><b>{{ Data.Artworks.Total }}</b> works</span>
|
||||
<span><b>{{ .Data.Artworks.Total }}</b> works</span>
|
||||
|
||||
<p class="tag-description">{{ Tag.Metadata.Detail }}</p>
|
||||
<p class="tag-description">{{ .Tag.Metadata.Detail }}</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="artwork-container-scroll">
|
||||
{{ range Data.RelatedTags }}
|
||||
{{ range .Data.RelatedTags }}
|
||||
<a href="/tags/{{ . }}">
|
||||
<div class="tag-container">
|
||||
<div class="main">#{{ . }}</div>
|
||||
@@ -30,42 +30,42 @@
|
||||
</a>
|
||||
{{ end }}
|
||||
</div>
|
||||
{{ Category := isset(Queries.category) ? Queries.category : "artworks" }}
|
||||
{{ Order := isset(Queries.order) ? Queries.order : "date_d" }}
|
||||
{{ Mode := isset(Queries.mode) ? Queries.mode : "safe" }}
|
||||
{{ Ratio := isset(Queries.ratio) ? Queries.ratio : "" }}
|
||||
{{ SearchMode := isset(Queries.smode) ? Queries.smode : "" }}
|
||||
{{ Category := isset(.Queries.category) ? .Queries.category : "artworks" }}
|
||||
{{ Order := isset(.Queries.order) ? .Queries.order : "date_d" }}
|
||||
{{ Mode := isset(.Queries.mode) ? .Queries.mode : "safe" }}
|
||||
{{ Ratio := isset(.Queries.ratio) ? .Queries.ratio : "" }}
|
||||
{{ SearchMode := isset(.Queries.smode) ? .Queries.smode : "" }}
|
||||
<div class="switcher">
|
||||
<div class="switch-title">Category</div>
|
||||
{{ URL := unfinishedQuery(QueriesC, "category") }}
|
||||
{{ URL := unfinishedQuery(.QueriesC, "category") }}
|
||||
{{ path := slice("artworks", "illustrations", "manga")}}
|
||||
{{ name := slice("Artworks", "Illustrations", "Manga")}}
|
||||
{{ yield Switcher(baseURL=URL, paths=path, names=name, currentPath=Category) }}
|
||||
</div>
|
||||
<div class="switcher">
|
||||
<div class="switch-title">Order</div>
|
||||
{{ URL := unfinishedQuery(QueriesC, "order") }}
|
||||
{{ URL := unfinishedQuery(.QueriesC, "order") }}
|
||||
{{ path := slice("date_d", "date")}}
|
||||
{{ name := slice("Newest", "Oldest")}}
|
||||
{{ yield Switcher(baseURL=URL, paths=path, names=name, currentPath=Order) }}
|
||||
</div>
|
||||
<div class="switcher">
|
||||
<div class="switch-title">Filter</div>
|
||||
{{ URL := unfinishedQuery(QueriesC, "mode") }}
|
||||
{{ URL := unfinishedQuery(.QueriesC, "mode") }}
|
||||
{{ path := slice("all", "safe", "r18")}}
|
||||
{{ name := slice("All", "Safe", "R-18")}}
|
||||
{{ yield Switcher(baseURL=URL, paths=path, names=name, currentPath=Mode) }}
|
||||
</div>
|
||||
<div class="switcher">
|
||||
<div class="switch-title">Ratio</div>
|
||||
{{ URL := unfinishedQuery(QueriesC, "ratio") }}
|
||||
{{ URL := unfinishedQuery(.QueriesC, "ratio") }}
|
||||
{{ path := slice("", "-0.5", "0", "0.5")}}
|
||||
{{ name := slice("All", "Portrait", "Square", "Landscape")}}
|
||||
{{ yield Switcher(baseURL=URL, paths=path, names=name, currentPath=Ratio) }}
|
||||
</div>
|
||||
<div class="switcher">
|
||||
<div class="switch-title">Search mode</div>
|
||||
{{ URL := unfinishedQuery(QueriesC, "smode") }}
|
||||
{{ URL := unfinishedQuery(.QueriesC, "smode") }}
|
||||
{{ path := slice("", "s_tag_full", "s_tag", "s_tc")}}
|
||||
{{ name := slice("None", "Exact (tags)", "Partial (tags)", "Title/Caption")}}
|
||||
{{ yield Switcher(baseURL=URL, paths=path, names=name, currentPath=SearchMode) }}
|
||||
@@ -74,48 +74,48 @@
|
||||
<summary>
|
||||
<h2>Advanced settings</h2>
|
||||
</summary>
|
||||
{{ URL := unfinishedQuery(QueriesC, "") }}
|
||||
<form action="{{ URL }}&name={{ QueriesC.Query.Name }}" method="post">
|
||||
{{ URL := unfinishedQuery(.QueriesC, "") }}
|
||||
<form action="{{ URL }}&name={{ .QueriesC.Query["Name"] }}" method="post">
|
||||
<label for="wlt">Minimum image width</label>
|
||||
<input type="text" name="wlt" value="{{ QueriesC.Query.Wlt }}" />
|
||||
<input type="text" name="wlt" value="{{ .QueriesC.Query["Wlt"] }}" />
|
||||
<label for="wgt">Maximum image width</label>
|
||||
<input type="text" name="wgt" value="{{ QueriesC.Query.Wgt }}" />
|
||||
<input type="text" name="wgt" value="{{ .QueriesC.Query["Wgt"] }}" />
|
||||
<label for="hlt">Minimum image height</label>
|
||||
<input type="text" name="hlt" value="{{ QueriesC.Query.Hlt }}" />
|
||||
<input type="text" name="hlt" value="{{ .QueriesC.Query["Hlt"] }}" />
|
||||
<label for="hgt">Maximum image height</label>
|
||||
<input type="text" name="hgt" value="{{ QueriesC.Query.Hgt }}" />
|
||||
<input type="text" name="hgt" value="{{ .QueriesC.Query["Hgt"] }}" />
|
||||
<label for="scd">Posted after (format: yyyy-mm-dd)</label>
|
||||
<input type="text" name="scd" value="{{ QueriesC.Query.Scd }}" />
|
||||
<input type="text" name="scd" value="{{ .QueriesC.Query["Scd"] }}" />
|
||||
<label for="ecd">Posted before (format: yyyy-mm-dd)</label>
|
||||
<input type="text" name="ecd" value="{{ QueriesC.Query.Ecd }}" />
|
||||
<input type="text" name="ecd" value="{{ .QueriesC.Query["Ecd"] }}" />
|
||||
<label for="tool">Tool</label>
|
||||
<input type="text" name="tool" value="{{ QueriesC.Query.Tool }}" />
|
||||
<input type="text" name="tool" value="{{ .QueriesC.Query["Tool"] }}" />
|
||||
<input type="submit" value="Set" />
|
||||
</form>
|
||||
</details>
|
||||
{{ if Data.Popular.Recent }}
|
||||
{{ if .Data.Popular.Recent }}
|
||||
<h2>Popular artworks</h2>
|
||||
<h3>Recent</h3>
|
||||
<div class="artwork-container-scroll">
|
||||
{{ include "components/small-tn" Data.Popular.Recent }}
|
||||
{{ include "components/small-tn" .Data.Popular.Recent }}
|
||||
</div>
|
||||
<h3>All Time</h3>
|
||||
<div class="artwork-container-scroll">
|
||||
{{ include "components/small-tn" Data.Popular.Permanent }}
|
||||
{{ include "components/small-tn" .Data.Popular.Permanent }}
|
||||
</div>
|
||||
{{ end }}
|
||||
{* Switchers here *}
|
||||
<br />
|
||||
<h2>Works</h2>
|
||||
<div class="artwork-container">
|
||||
{{ include "components/small-tn" Data.Artworks.Artworks }}
|
||||
{{ include "components/small-tn" .Data.Artworks.Artworks }}
|
||||
</div>
|
||||
|
||||
<div class="pagination">
|
||||
{{ url := unfinishedQuery(QueriesC, "page") }}
|
||||
<small>Page {{ Page }}</small>
|
||||
{{ url := unfinishedQuery(.QueriesC, "page") }}
|
||||
<small>Page {{ .Page }}</small>
|
||||
<br />
|
||||
{{ raw: createPaginator(url, "#checkpoint", Page, -1) }}
|
||||
{{ raw: createPaginator(url, "#checkpoint", .Page, -1) }}
|
||||
</div>
|
||||
</div>
|
||||
{{end}}
|
||||
{{ end }}
|
||||
|
||||
+13
-13
@@ -1,5 +1,5 @@
|
||||
{{extends "layout/default.jet.html"}}
|
||||
{{block body()}}
|
||||
{{ extends "layout/default" }}
|
||||
{{ block body() }}
|
||||
|
||||
{{ if Token }}
|
||||
<div class="switcher">
|
||||
@@ -12,17 +12,17 @@
|
||||
<a href="/self/following_works">See more</a>
|
||||
</div>
|
||||
<div class="artwork-container-scroll">
|
||||
{{ include "components/small-tn" Artworks.Following }}
|
||||
{{ include "components/small-tn" .Artworks.Following }}
|
||||
</div>
|
||||
<br />
|
||||
<h2>Recently completed commissions</h2>
|
||||
<div class="artwork-container">
|
||||
{{ include "components/small-tn" Artworks.Commissions }}
|
||||
{{ include "components/small-tn" .Artworks.Commissions }}
|
||||
</div>
|
||||
<br />
|
||||
<h2>Recommended works</h2>
|
||||
<div class="artwork-container">
|
||||
{{ include "components/small-tn" Artworks.Recommended }}
|
||||
{{ include "components/small-tn" .Artworks.Recommended }}
|
||||
</div>
|
||||
<br />
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
<a href="/ranking">See more</a>
|
||||
</div>
|
||||
<div class="artwork-container-scroll">
|
||||
{{ range rank := Artworks.Rankings }}
|
||||
{{ range rank := .Artworks.Rankings }}
|
||||
<div class="artwork-large artwork">
|
||||
<div class="artwork-additional">
|
||||
<div class="artwork-position">{{ rank + 1 }}</div>
|
||||
@@ -67,7 +67,7 @@
|
||||
|
||||
{* <h2>Pixivision</h2>
|
||||
<div class="thumbnail-container">
|
||||
{{ range Artworks.Pixivision }}
|
||||
{{ range .Artworks.Pixivision }}
|
||||
<a href="{{ .URL }}" class="spotlight-thumbnail">
|
||||
<img
|
||||
src="{{ .Thumbnail }}"
|
||||
@@ -84,10 +84,10 @@
|
||||
|
||||
<h2>Works by recommended users</h2>
|
||||
<div class="artwork-container">
|
||||
{{ include "components/small-tn" Artworks.Users }}
|
||||
{{ include "components/small-tn" .Artworks.Users }}
|
||||
</div>
|
||||
<br />
|
||||
{{ range Artworks.RecommendByTags }}
|
||||
{{ range .Artworks.RecommendByTags }}
|
||||
<h2>Recommended illustrations tagged #{{.Name}}</h2>
|
||||
<div class="artwork-container">
|
||||
{{ include "components/small-tn" .Artworks }}
|
||||
@@ -98,7 +98,7 @@
|
||||
<p>Please check out the sidebar for more features. There used to be a small ranking container here...</p>
|
||||
{* <h2>Newest works</h2>
|
||||
<div class="artwork-container-scroll">
|
||||
{{ include "components/small-tn" Artworks.Newest }}
|
||||
{{ include "components/small-tn" .Artworks.Newest }}
|
||||
</div>
|
||||
{{ else }}
|
||||
<p><a href="/login">Login</a> to access more features!</p>
|
||||
@@ -112,7 +112,7 @@
|
||||
<a href="/ranking">See more</a>
|
||||
</div>
|
||||
<div class="artwork-container-scroll">
|
||||
{{ range rank := Artworks.Rankings }}
|
||||
{{ range rank := .Artworks.Rankings }}
|
||||
<div class="artwork-large artwork">
|
||||
<div class="artwork-additional">
|
||||
<div class="artwork-position">{{ rank + 1 }}</div>
|
||||
@@ -148,7 +148,7 @@
|
||||
|
||||
{* <h2>Pixivision</h2>
|
||||
<div class="thumbnail-container">
|
||||
{{ range Artworks.Pixivision }}
|
||||
{{ range .Artworks.Pixivision }}
|
||||
<a href="{{ .URL }}" class="spotlight-thumbnail">
|
||||
<img
|
||||
src="{{ .Thumbnail }}"
|
||||
@@ -164,4 +164,4 @@
|
||||
<br /> *}
|
||||
|
||||
{{ end }}
|
||||
{{end}}
|
||||
{{ end }}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{{extends "layout/default.jet.html"}}
|
||||
{{block body()}}
|
||||
{{ extends "layout/default" }}
|
||||
{{ block body() }}
|
||||
<div class="container error">
|
||||
<h1>Unauthorized</h1>
|
||||
|
||||
<p>You need to <a href="/settings#login">log in</a> to use this feature.</p>
|
||||
</div>
|
||||
{{end}}
|
||||
{{ end }}
|
||||
|
||||
+26
-26
@@ -1,27 +1,27 @@
|
||||
{{extends "layout/default.jet.html"}}
|
||||
{{block body()}}
|
||||
{{ if ! User.BackgroundImage }}
|
||||
{{ extends "layout/default" }}
|
||||
{{ block body() }}
|
||||
{{ if ! .User.BackgroundImage }}
|
||||
<div class="background-cover"></div>
|
||||
{{ else }}
|
||||
<div class="background-cover" id="hasbg">
|
||||
<img src="{{ User.BackgroundImage }}" alt="{{ User.Name }}" />
|
||||
<img src="{{ .User.BackgroundImage }}" alt="{{ .User.Name }}" />
|
||||
</div>
|
||||
{{ end }}
|
||||
<div class="container user">
|
||||
<div class="user-avatar">
|
||||
<img src="{{User.Avatar}}" alt="Avatar Of User">
|
||||
<img src="{{.User.Avatar}}" alt="Avatar Of User">
|
||||
</div>
|
||||
<div class="user-details">
|
||||
<h1>{{ User.Name }}</h1>
|
||||
<h1>{{ .User.Name }}</h1>
|
||||
<div>
|
||||
<a href="https://pixiv.net/u/{{ User.ID }}">pixiv.net/u/{{ User.ID }}</a>
|
||||
<a href="https://pixiv.net/u/{{ .User.ID }}">pixiv.net/u/{{ .User.ID }}</a>
|
||||
<br />
|
||||
</div>
|
||||
<small> {{ User.Following }} Following | {{ User.MyPixiv }} MyPixiv </small>
|
||||
<small> {{ .User.Following }} Following | {{ .User.MyPixiv }} MyPixiv </small>
|
||||
<div class="user-social">
|
||||
{{ if User.Webpage }}
|
||||
<span><a href="{{ User.Webpage }}"><img src="/img/globe.png" alt="Webpage" /></a></span>
|
||||
{{ end }} {{ range index, item := User.Social }}
|
||||
{{ if .User.Webpage }}
|
||||
<span><a href="{{ .User.Webpage }}"><img src="/img/globe.png" alt="Webpage" /></a></span>
|
||||
{{ end }} {{ range index, item := .User.Social }}
|
||||
<span>
|
||||
<a href="{{ item.url }}">
|
||||
<img src="/img/{{ index }}.svg" alt="{{ index }}" />
|
||||
@@ -29,11 +29,11 @@
|
||||
</span>
|
||||
{{ end }}
|
||||
</div>
|
||||
<p>{{ raw: parsePixivRedirect(User.Comment) }}</p>
|
||||
<p>{{ raw: parsePixivRedirect(.User.Comment) }}</p>
|
||||
</div>
|
||||
<div>Frequently Used Tags</div>
|
||||
<div class="tag-list">
|
||||
{{ range User.FrequentTags }}
|
||||
{{ range .User.FrequentTags }}
|
||||
<a href="/tags/{{ .Name }}">
|
||||
#{{ .Name }}
|
||||
{* <div>
|
||||
@@ -49,21 +49,21 @@
|
||||
</div>
|
||||
<div class="switcher">
|
||||
<div class="switch-title">Category</div>
|
||||
<a href="/users/{{ User.ID }}/#checkpoint" class="switch-button">All</a>
|
||||
<a href="/users/{{ User.ID }}/illustrations#checkpoint" class="switch-button">Illustrations</a>
|
||||
<a href="/users/{{ User.ID }}/manga#checkpoint" class="switch-button">Mangas</a>
|
||||
<a href="/users/{{ User.ID }}/novels#checkpoint" class="switch-button">Novels</a>
|
||||
<a href="/users/{{ User.ID }}/bookmarks#checkpoint" class="switch-button">Bookmarks</a>
|
||||
<a href="/users/{{ .User.ID }}/#checkpoint" class="switch-button">All</a>
|
||||
<a href="/users/{{ .User.ID }}/illustrations#checkpoint" class="switch-button">Illustrations</a>
|
||||
<a href="/users/{{ .User.ID }}/manga#checkpoint" class="switch-button">Mangas</a>
|
||||
<a href="/users/{{ .User.ID }}/novels#checkpoint" class="switch-button">Novels</a>
|
||||
<a href="/users/{{ .User.ID }}/bookmarks#checkpoint" class="switch-button">Bookmarks</a>
|
||||
</div>
|
||||
<div>
|
||||
{{ if Category != "novels" }}
|
||||
{{ if .Category != "novels" }}
|
||||
<div class="artwork-container-header">
|
||||
<h2 id="checkpoint">Illustrations and Mangas</h2>
|
||||
{{ combinedUrl := "/artworks-multi/" + joinArtworkIds(User.Artworks) }}
|
||||
{{ combinedUrl := "/artworks-multi/" + joinArtworkIds(.User.Artworks) }}
|
||||
<div class="artwork-actions"><a href="{{combinedUrl}}">View all art on this page</a></div>
|
||||
</div>
|
||||
<div class="artwork-container">
|
||||
{{ include "components/small-tn" User.Artworks }}
|
||||
{{ include "components/small-tn" .User.Artworks }}
|
||||
</div>
|
||||
{{ else }}
|
||||
|
||||
@@ -71,17 +71,17 @@
|
||||
<h2 id="checkpoint">Novels</h2>
|
||||
</div>
|
||||
<div class="novel-container">
|
||||
{{ range User.Novels }}
|
||||
{{ range .User.Novels }}
|
||||
{{ include "components/novel-tn" . }}
|
||||
{{ end }}
|
||||
</div>
|
||||
{{ end }}
|
||||
</div>
|
||||
<div class="pagination">
|
||||
{{ url := "/users/" + User.ID + "/" + Category + "?page="}}
|
||||
<small>Page {{ Page }}/{{ PageLimit }}</small>
|
||||
{{ url := "/users/" + .User.ID + "/" + .Category + "?page="}}
|
||||
<small>Page {{ .Page }}/{{ .PageLimit }}</small>
|
||||
<br />
|
||||
{{ raw: createPaginator(url, "#checkpoint", Page, PageLimit) }}
|
||||
{{ raw: createPaginator(url, "#checkpoint", .Page, .PageLimit) }}
|
||||
</div>
|
||||
</div>
|
||||
{{end}}
|
||||
{{ end }}
|
||||
|
||||
@@ -1,26 +1,26 @@
|
||||
{{extends "layout/default.jet.html"}}
|
||||
{{block body()}}
|
||||
{{ extends "layout/default" }}
|
||||
{{ block body() }}
|
||||
<?xml version="1.0" encoding="utf-8"?>{* <?xml-stylesheet href="/feed.xsl" type="text/xsl"?> *}
|
||||
<feed xmlns="http://www.w3.org/2005/Atom">
|
||||
<id>{{ BaseURL }}/users/{{ User.ID }}/{{ Category }}</id>
|
||||
<link rel="alternate" href="{{ BaseURL }}/users/{{ User.ID }}/{{ Category }}"/>
|
||||
<id>{{ BaseURL }}/users/{{ .User.ID }}/{{ .Category }}</id>
|
||||
<link rel="alternate" href="{{ BaseURL }}/users/{{ .User.ID }}/{{ .Category }}"/>
|
||||
<link rel="self" href="{{ PageURL }}"/>
|
||||
<link rel="first" href="{{ BaseURL }}/users/{{ User.ID }}/{{ Category }}.atom.xml?page=1"/>
|
||||
<link rel="last" href="{{ BaseURL }}/users/{{ User.ID }}/{{ Category }}.atom.xml?page={{ PageLimit }}"/>
|
||||
{{ if Page - 1 >= 1 }}
|
||||
<link rel="previous" href="{{ BaseURL }}/users/{{ User.ID }}/{{ Category }}.atom.xml?page={{ Page - 1 }}"/>
|
||||
<link rel="first" href="{{ BaseURL }}/users/{{ .User.ID }}/{{ .Category }}.atom.xml?page=1"/>
|
||||
<link rel="last" href="{{ BaseURL }}/users/{{ .User.ID }}/{{ .Category }}.atom.xml?page={{ .PageLimit }}"/>
|
||||
{{ if .Page - 1 >= 1 }}
|
||||
<link rel="previous" href="{{ BaseURL }}/users/{{ .User.ID }}/{{ .Category }}.atom.xml?page={{ .Page - 1 }}"/>
|
||||
{{ end }}
|
||||
{{ if Page + 1 <= PageLimit }}
|
||||
<link rel="next" href="{{ BaseURL }}/users/{{ User.ID }}/{{ Category }}.atom.xml?page={{ Page + 1 }}"/>
|
||||
{{ if .Page + 1 <= .PageLimit }}
|
||||
<link rel="next" href="{{ BaseURL }}/users/{{ .User.ID }}/{{ .Category }}.atom.xml?page={{ .Page + 1 }}"/>
|
||||
{{ end }}
|
||||
<updated>{{ Updated }}</updated>
|
||||
<title>{{ Title }}</title>
|
||||
<updated>{{ .Updated }}</updated>
|
||||
<title>{{ .Title }}</title>
|
||||
<author>
|
||||
<name>{{ User.Name }}</name>
|
||||
<uri>{{ BaseURL }}/users/{{ User.ID }}/</uri>
|
||||
<name>{{ .User.Name }}</name>
|
||||
<uri>{{ BaseURL }}/users/{{ .User.ID }}/</uri>
|
||||
</author>
|
||||
|
||||
{{ range User.Artworks }}
|
||||
{{ range .User.Artworks }}
|
||||
<entry>
|
||||
<id>{{ BaseURL }}/artworks/{{ .ID }}/</id>
|
||||
<link rel="alternate" href="{{ BaseURL }}/artworks/{{ .ID }}/"/>
|
||||
|
||||
+2
-2
@@ -21,7 +21,7 @@ func IndexPage(c *fiber.Ctx) error {
|
||||
return Render(c, Data_index{
|
||||
Title: "Landing",
|
||||
Data: *works,
|
||||
IsLoggedIn: true,
|
||||
LoggedIn: true,
|
||||
})
|
||||
}
|
||||
|
||||
@@ -33,7 +33,7 @@ func IndexPage(c *fiber.Ctx) error {
|
||||
return Render(c, Data_index{
|
||||
Title: "Landing",
|
||||
NoTokenData: works,
|
||||
IsLoggedIn: false,
|
||||
LoggedIn: false,
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
+17
-5
@@ -3,6 +3,7 @@ package routes
|
||||
import (
|
||||
"io"
|
||||
"log"
|
||||
"os"
|
||||
"reflect"
|
||||
"strings"
|
||||
"testing"
|
||||
@@ -12,28 +13,36 @@ import (
|
||||
)
|
||||
|
||||
func TestTemplates(t *testing.T) {
|
||||
autoTest[Data_error](t)
|
||||
{
|
||||
data := fakeData[Data_error]()
|
||||
data.Error = io.EOF
|
||||
manualTest(t, data)
|
||||
}
|
||||
autoTest[Data_about](t)
|
||||
autoTest[Data_artwork](t)
|
||||
autoTest[Data_artworkMulti](t)
|
||||
autoTest[Data_discovery](t)
|
||||
autoTest[Data_novelDiscovery](t)
|
||||
autoTest[Data_following](t)
|
||||
autoTest[Data_index](t)
|
||||
autoTest[Data_newest](t)
|
||||
autoTest[Data_novel](t)
|
||||
autoTest[Data_unauthorized](t)
|
||||
autoTest[Data_following](t)
|
||||
autoTest[Data_pixivision_index](t)
|
||||
autoTest[Data_novelDiscovery](t)
|
||||
autoTest[Data_pixivision_article](t)
|
||||
autoTest[Data_pixivision_index](t)
|
||||
autoTest[Data_rank](t)
|
||||
autoTest[Data_rankingCalendar](t)
|
||||
autoTest[Data_settings](t)
|
||||
autoTest[Data_tag](t)
|
||||
autoTest[Data_unauthorized](t)
|
||||
autoTest[Data_user](t)
|
||||
autoTest[Data_userAtom](t)
|
||||
}
|
||||
|
||||
func TestMain(m *testing.M) {
|
||||
err := os.Chdir("..")
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
InitTemplatingEngine(false)
|
||||
|
||||
m.Run()
|
||||
@@ -55,6 +64,9 @@ func manualTest[T any](t *testing.T, data T) {
|
||||
if !found {
|
||||
log.Panicf("struct name does not start with 'Data_': %s", route_name)
|
||||
}
|
||||
|
||||
// log.Println("Testing " + route_name)
|
||||
|
||||
variables := jet.VarMap{}
|
||||
|
||||
for k, v := range map[string]any{
|
||||
|
||||
@@ -47,7 +47,7 @@ type Data_userAtom struct {
|
||||
}
|
||||
type Data_index struct {
|
||||
Title string
|
||||
IsLoggedIn bool
|
||||
LoggedIn bool
|
||||
Data core.LandingArtworks
|
||||
NoTokenData core.Ranking
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user