Add index content, update build file, patch .gitignore
Some checks are pending
ci/woodpecker/push/build Pipeline is pending
Some checks are pending
ci/woodpecker/push/build Pipeline is pending
This commit is contained in:
parent
50a1fb41d1
commit
c8f4cfa220
3
.gitignore
vendored
3
.gitignore
vendored
@ -19,3 +19,6 @@ cnf/
|
|||||||
cnf
|
cnf
|
||||||
cnf_/
|
cnf_/
|
||||||
cnf_
|
cnf_
|
||||||
|
|
||||||
|
# Go YAML Page Config -- For This Repo
|
||||||
|
*.go.yml
|
||||||
|
8
Makefile
8
Makefile
@ -34,19 +34,19 @@ clean:
|
|||||||
rm -r -f dist/
|
rm -r -f dist/
|
||||||
|
|
||||||
deploy: build
|
deploy: build
|
||||||
sudo systemctl stop wappcityuni
|
sudo systemctl stop ${PRODUCT_NAME}
|
||||||
sudo cp "${BIN}" /usr/local/bin
|
sudo cp "${BIN}" /usr/local/bin
|
||||||
sudo cp *.go.html cnf
|
sudo cp *.go.html cnf
|
||||||
sudo cp *.go.yml cnf
|
sudo cp *.go.yml cnf
|
||||||
sudo cp *.css cdn
|
sudo cp *.css cdn
|
||||||
sudo cp *.js cdn
|
sudo cp *.js cdn
|
||||||
sudo systemctl start wappcityuni
|
sudo systemctl start ${PRODUCT_NAME}
|
||||||
|
|
||||||
d: build
|
d: build
|
||||||
sudo systemctl stop wappcityuni_
|
sudo systemctl stop ${DNAME}
|
||||||
sudo cp "${BIN}" "/usr/local/bin/${DNAME}"
|
sudo cp "${BIN}" "/usr/local/bin/${DNAME}"
|
||||||
sudo cp *.go.html cnf_
|
sudo cp *.go.html cnf_
|
||||||
sudo cp *.go.yml cnf_
|
sudo cp *.go.yml cnf_
|
||||||
sudo cp *.css cdn_
|
sudo cp *.css cdn_
|
||||||
sudo cp *.js cdn_
|
sudo cp *.js cdn_
|
||||||
sudo systemctl start wappcityuni_
|
sudo systemctl start ${DNAME}
|
||||||
|
@ -150,6 +150,10 @@
|
|||||||
<th>Memory Page Size</th>
|
<th>Memory Page Size</th>
|
||||||
<td>{{ .PageSize }}</td>
|
<td>{{ .PageSize }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>System Time</th>
|
||||||
|
<td>{{ .CurrentTime }}</td>
|
||||||
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
|
267
index.go.html
Normal file
267
index.go.html
Normal file
@ -0,0 +1,267 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<meta name="description" content="Minecraft Server {{ .Data.PageTitle }}">
|
||||||
|
<meta name="keywords" content="Minecraft Server Mine Craft {{ .Data.PageTitle }}">
|
||||||
|
<title>{{ .Data.PageTitle }}</title>
|
||||||
|
<style>
|
||||||
|
body {
|
||||||
|
color: {{ if .Dark }} #f9f9f9 {{ else }} #060606 {{ end }};
|
||||||
|
background-color: {{ if .Dark }} #050506 {{ else }} #fafaf9 {{ end }};
|
||||||
|
border-color: {{ if .Dark }} #696969 {{ else }} #969696 {{ end }};
|
||||||
|
}
|
||||||
|
a {
|
||||||
|
color: {{ if .Dark }} #b0b0f0 {{ else }} #4f4fff {{ end }};
|
||||||
|
}
|
||||||
|
.full-heading {
|
||||||
|
margin: auto;
|
||||||
|
width: 80%;
|
||||||
|
border-style: solid;
|
||||||
|
text-align: center;
|
||||||
|
background-color: {{ if .Dark }} #1d1d1e {{ else }} #e2e2e1 {{ end }};
|
||||||
|
}
|
||||||
|
.full-border {
|
||||||
|
border-width: 1px;
|
||||||
|
}
|
||||||
|
.tm-border {
|
||||||
|
border-width: 1px 1px 0px;
|
||||||
|
}
|
||||||
|
.bm-border {
|
||||||
|
border-width: 0px 1px 1px;
|
||||||
|
}
|
||||||
|
table, th, td {
|
||||||
|
margin: auto;
|
||||||
|
text-align: left;
|
||||||
|
border-style: solid;
|
||||||
|
border-width: 1px;
|
||||||
|
border-collapse: collapse;
|
||||||
|
word-break: break-word;
|
||||||
|
-ms-word-wrap: break-word;
|
||||||
|
word-wrap: break-word;
|
||||||
|
}
|
||||||
|
table, td {
|
||||||
|
background-color: {{ if .Dark }} dimgray {{ else }} lightgray {{ end }};
|
||||||
|
}
|
||||||
|
table {
|
||||||
|
width: 80%;
|
||||||
|
}
|
||||||
|
th {
|
||||||
|
background-color: {{ if .Dark }} #295d8a {{ else }} #b0c4de {{ end }};
|
||||||
|
width: 25%;
|
||||||
|
}
|
||||||
|
td {
|
||||||
|
width: 75%;
|
||||||
|
}
|
||||||
|
.centered {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<p>
|
||||||
|
<div class="full-heading full-border">
|
||||||
|
<h1>{{ .Data.PageTitle }}</h1>
|
||||||
|
</div>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<div class="full-heading tm-border">
|
||||||
|
<b>
|
||||||
|
<a href="{{ .ToggleQuery "dark" }}" title="Toggle Theme.">{{ if .Dark }}Light Mode{{ else }}Dark Mode{{ end }}</a>
|
||||||
|
</b>
|
||||||
|
</div>
|
||||||
|
<div class="full-heading bm-border">
|
||||||
|
<b>
|
||||||
|
<a href="{{ .ToggleQuery "extended" }}" title="Toggle Extended Information.">{{ if .ExtendedShown }}Hide Extended Information{{ else }}Show Extended Information{{ end }}</a>
|
||||||
|
</b>
|
||||||
|
</div>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<th>Server Address</th>
|
||||||
|
<td>{{ if .Online }}{{ .Queried.Address }}{{ else }}{{ .Data.MCAddress }}{{ end }}</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>Server Port</th>
|
||||||
|
<td>{{ if .Online }}{{ .Queried.Port }}{{ else }}{{ .Data.MCPort }}{{ end }}</td>
|
||||||
|
</tr>
|
||||||
|
{{ if (and .ExtendedShown .Queried.Port6) }}
|
||||||
|
<tr>
|
||||||
|
<th>Server IPv6 Port</th>
|
||||||
|
<td>{{ .Queried.Port6 }}</td>
|
||||||
|
</tr>
|
||||||
|
{{ end }}
|
||||||
|
{{ if and .ExtendedShown .Data.AllowDisplayActualAddress }}
|
||||||
|
{{ if .Queried.ActualHost }}
|
||||||
|
<tr>
|
||||||
|
<th>Actual Address</th>
|
||||||
|
<td>{{ .Queried.ActualHost }}</td>
|
||||||
|
</tr>
|
||||||
|
{{ end }}
|
||||||
|
{{ if .Queried.ActualPort }}
|
||||||
|
<tr>
|
||||||
|
<th>Actual Port</th>
|
||||||
|
<td>{{ .Queried.ActualPort }}</td>
|
||||||
|
</tr>
|
||||||
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
|
{{ if .Data.AllowDisplayState }}
|
||||||
|
<tr>
|
||||||
|
<th>Server State</th>
|
||||||
|
<td>{{ if .Online }}Online{{ else }}Offline{{ end }}</td>
|
||||||
|
</tr>
|
||||||
|
{{ end }}
|
||||||
|
{{ if ne .Data.ServerDescription "" }}
|
||||||
|
<tr>
|
||||||
|
<th>Server Description</th>
|
||||||
|
<td>{{ .Data.ServerDescription }}</td>
|
||||||
|
</tr>
|
||||||
|
{{ end }}
|
||||||
|
{{ if .Online }}
|
||||||
|
{{ if .Data.AllowDisplayVersion }}
|
||||||
|
<tr>
|
||||||
|
<th>Type</th>
|
||||||
|
<td>{{ .Data.GetCleanMCType }}</td>
|
||||||
|
</tr>
|
||||||
|
{{ if .Queried.Edition }}
|
||||||
|
<tr>
|
||||||
|
<th>Edition</th>
|
||||||
|
<td>{{ .Queried.Edition }}</td>
|
||||||
|
</tr>
|
||||||
|
{{ end }}
|
||||||
|
{{ if .Queried.Version }}
|
||||||
|
<tr>
|
||||||
|
<th>Version</th>
|
||||||
|
<td>{{ .Queried.Version }}</td>
|
||||||
|
</tr>
|
||||||
|
{{ end }}
|
||||||
|
{{ if (and .ExtendedShown .Queried.ProtocolVersion) }}
|
||||||
|
<tr>
|
||||||
|
<th>Protocol Version</th>
|
||||||
|
<td>{{ .Queried.ProtocolVersion }}</td>
|
||||||
|
</tr>
|
||||||
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
|
{{ if and .Data.AllowPlayerCountDisplay (and .Queried.PlayerCount .Queried.MaxPlayers) }}
|
||||||
|
<tr>
|
||||||
|
<th>Player Count</th>
|
||||||
|
<td>{{ if .Data.AllowPlayerListing }}<a href="{{ .ToggleQuery "players" }}" title="Toggle Player List.">{{ end }} {{ .Queried.PlayerCount }} / {{ .Queried.MaxPlayers }} {{ if .Data.AllowPlayerListing }}</a>{{ end }}</td>
|
||||||
|
</tr>
|
||||||
|
{{ end }}
|
||||||
|
{{ if .Data.AllowMOTDDisplay }}
|
||||||
|
{{ if ne .Queried.MOTD "" }}
|
||||||
|
<tr>
|
||||||
|
<th>MOTD</th>
|
||||||
|
<td>{{ .Queried.MOTD }}</td>
|
||||||
|
</tr>
|
||||||
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
|
{{ if .ExtendedShown }}
|
||||||
|
{{ if and .Data.AllowFaviconDisplay .Queried.Favicon }}
|
||||||
|
<tr>
|
||||||
|
<th>Icon</th>
|
||||||
|
<td class="centered">
|
||||||
|
<img {{ .Queried.GetFaviconSRC }} alt="Icon" title="Icon" width="64" height="64" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
{{ end }}
|
||||||
|
{{ if and .Data.AllowDisplayModded (gt .Queried.ModCount 0) }}
|
||||||
|
<tr>
|
||||||
|
<th>Mod Count</th>
|
||||||
|
<td>{{ if .Data.AllowModListing }}<a href="{{ .ToggleQuery "mods" }}" title="Toggle Mod List.">{{ end }}{{ .Queried.ModCount }}{{ if .Data.AllowModListing }}</a>{{ end }}</td>
|
||||||
|
</tr>
|
||||||
|
{{ end }}
|
||||||
|
{{ if and .Data.AllowSecureProfileModeDisplay .Queried.SecureProfilesEnforced }}
|
||||||
|
<tr>
|
||||||
|
<th>Secure Profiles Enforced</th>
|
||||||
|
<td>{{ .Queried.SecureProfilesEnforced }}</td>
|
||||||
|
</tr>
|
||||||
|
{{ end }}
|
||||||
|
{{ if and .Data.AllowPreviewChatModeDisplay .Queried.PreviewChatEnforced }}
|
||||||
|
<tr>
|
||||||
|
<th>Preview Chat Enforced</th>
|
||||||
|
<td>{{ .Queried.PreviewChatEnforced }}</td>
|
||||||
|
</tr>
|
||||||
|
{{ end }}
|
||||||
|
<tr>
|
||||||
|
<th>Last Update Time</th>
|
||||||
|
<td>{{ .Queried.GetTimestamp }}</td>
|
||||||
|
</tr>
|
||||||
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
|
</table>
|
||||||
|
</p>
|
||||||
|
{{ if and (and .PlayersShown .Online) (and .Data.AllowPlayerCountDisplay .Data.AllowPlayerListing) }}
|
||||||
|
<p>
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<th>Player List{{ if .Queried.PlayerCount }} ({{ .Queried.PlayerCount }}) {{ end }}</th>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><a href="{{ .ToggleQuery "players" }}" title="Collapse Player List.">Collapse Player List</a></td>
|
||||||
|
</tr>
|
||||||
|
{{ if gt (len (.Queried.GetPlayers .Data.ShowAnonymousPlayers)) 0 }}
|
||||||
|
{{ range .Queried.Players }}
|
||||||
|
<tr>
|
||||||
|
<td>{{ if or .Data.ShowAnonymousPlayers (ne . "Anonymous Player") }}{{ . }}{{ end }}</td>
|
||||||
|
</tr>
|
||||||
|
{{ end }}
|
||||||
|
{{ else }}
|
||||||
|
<tr>
|
||||||
|
<td>No Detectable Players.</td>
|
||||||
|
</tr>
|
||||||
|
{{ end }}
|
||||||
|
<tr>
|
||||||
|
<td><a href="{{ .ToggleQuery "players" }}" title="Collapse Player List.">Collapse Player List</a></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</p>
|
||||||
|
{{ end }}
|
||||||
|
{{ if and (and .ModsShown .Online) (and .ExtendedShown (and .Data.AllowDisplayModded .Data.AllowModListing)) }}
|
||||||
|
<p>
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<th>Mod List ({{ .Queried.PlayerCount }})</th>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><a href="{{ .ToggleQuery "mods" }}" title="Collapse Mod List.">Collapse Mod List</a></td>
|
||||||
|
</tr>
|
||||||
|
{{ if gt (len .Queried.Mods) 0 }}
|
||||||
|
{{ range .Queried.Mods }}
|
||||||
|
<tr>
|
||||||
|
<td>{{ . }}</td>
|
||||||
|
</tr>
|
||||||
|
{{ end }}
|
||||||
|
{{ else }}
|
||||||
|
<tr>
|
||||||
|
<td>No Detectable Mods.</td>
|
||||||
|
</tr>
|
||||||
|
{{ end }}
|
||||||
|
<tr>
|
||||||
|
<td><a href="{{ .ToggleQuery "mods" }}" title="Collapse Mod List.">Collapse Mod List</a></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</p>
|
||||||
|
{{ end }}
|
||||||
|
<p>
|
||||||
|
<div class="full-heading tm-border">
|
||||||
|
<b>
|
||||||
|
<a href="{{ .ToggleQuery "extended" }}" title="Toggle Extended Information.">{{ if .ExtendedShown }}Hide Extended Information{{ else }}Show Extended Information{{ end }}</a>
|
||||||
|
</b>
|
||||||
|
</div>
|
||||||
|
<div class="full-heading bm-border">
|
||||||
|
<b>
|
||||||
|
<a href="{{ .ToggleQuery "dark" }}" title="Toggle Theme.">{{ if .Dark }}Light Mode{{ else }}Dark Mode{{ end }}</a>
|
||||||
|
</b>
|
||||||
|
</div>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<div class="full-heading full-border">
|
||||||
|
<b>{{ .Data.Footer }}</b>
|
||||||
|
</div>
|
||||||
|
</p>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -1,9 +1,6 @@
|
|||||||
package pageHandler
|
package pageHandler
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"golang.captainalm.com/mc-webserver/conf"
|
|
||||||
"golang.captainalm.com/mc-webserver/utils/info"
|
|
||||||
"golang.captainalm.com/mc-webserver/utils/io"
|
|
||||||
"html/template"
|
"html/template"
|
||||||
"net/url"
|
"net/url"
|
||||||
"os"
|
"os"
|
||||||
@ -11,6 +8,10 @@ import (
|
|||||||
"runtime"
|
"runtime"
|
||||||
"sync"
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"golang.captainalm.com/mc-webserver/conf"
|
||||||
|
"golang.captainalm.com/mc-webserver/utils/info"
|
||||||
|
"golang.captainalm.com/mc-webserver/utils/io"
|
||||||
)
|
)
|
||||||
|
|
||||||
const templateName = "goinfo.go.html"
|
const templateName = "goinfo.go.html"
|
||||||
@ -45,6 +46,7 @@ func (gipg *goInfoPage) GetCacheIDExtension(urlParameters url.Values) string {
|
|||||||
|
|
||||||
type goInfoTemplateMarshal struct {
|
type goInfoTemplateMarshal struct {
|
||||||
FullOutput bool
|
FullOutput bool
|
||||||
|
CurrentTime time.Time
|
||||||
RegisteredPages []string
|
RegisteredPages []string
|
||||||
CachedPages []string
|
CachedPages []string
|
||||||
ProcessID int
|
ProcessID int
|
||||||
@ -98,6 +100,7 @@ func (gipg *goInfoPage) GetContents(urlParameters url.Values) (contentType strin
|
|||||||
theBuffer := &io.BufferedWriter{}
|
theBuffer := &io.BufferedWriter{}
|
||||||
err = theTemplate.ExecuteTemplate(theBuffer, templateName, &goInfoTemplateMarshal{
|
err = theTemplate.ExecuteTemplate(theBuffer, templateName, &goInfoTemplateMarshal{
|
||||||
FullOutput: urlParameters.Has("full"),
|
FullOutput: urlParameters.Has("full"),
|
||||||
|
CurrentTime: time.Now(),
|
||||||
RegisteredPages: regPages,
|
RegisteredPages: regPages,
|
||||||
CachedPages: cacPages,
|
CachedPages: cacPages,
|
||||||
ProcessID: os.Getpid(),
|
ProcessID: os.Getpid(),
|
||||||
|
@ -28,6 +28,7 @@ type DataYaml struct {
|
|||||||
AllowPreviewChatModeDisplay bool `yaml:"allowPreviewChatModeDisplay"`
|
AllowPreviewChatModeDisplay bool `yaml:"allowPreviewChatModeDisplay"`
|
||||||
AllowDisplayModded bool `yaml:"allowDisplayModded"`
|
AllowDisplayModded bool `yaml:"allowDisplayModded"`
|
||||||
AllowModListing bool `yaml:"allowModListing"`
|
AllowModListing bool `yaml:"allowModListing"`
|
||||||
|
ShowAnonymousPlayers bool `yaml:"showAnonymousPlayers"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (dy DataYaml) GetCleanMCType() string {
|
func (dy DataYaml) GetCleanMCType() string {
|
||||||
|
@ -34,3 +34,17 @@ func (m MC) GetFaviconSRC() template.HTMLAttr {
|
|||||||
toReturn += "\""
|
toReturn += "\""
|
||||||
return template.HTMLAttr(toReturn)
|
return template.HTMLAttr(toReturn)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (m MC) GetTimestamp() string {
|
||||||
|
return m.Timestamp.Format(time.RFC822)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m MC) GetPlayers(aap bool) []string {
|
||||||
|
toReturn := make([]string, 0)
|
||||||
|
for _, cpl := range m.Players {
|
||||||
|
if aap || cpl != "Anonymous Player" {
|
||||||
|
toReturn = append(toReturn, cpl)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return toReturn
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user