Make CacheID global

This commit is contained in:
2022-10-11 14:42:24 +02:00
parent 14df7e8a70
commit 547d50a6bc
15 changed files with 36 additions and 35 deletions

View File

@@ -204,7 +204,7 @@ section {
padding: 4px;
margin: 0.2em 15px 0.2em 15px;
font-family: 'Open Sans Light', sans-serif;
font-weight: light;
font-weight: lighter;
font-size: 1.5em;
overflow: hidden;
text-overflow: ellipsis;

View File

@@ -9,8 +9,8 @@
window.api_endpoint = '{{.APIEndpoint}}';
window.server_hostname = "{{.Hostname}}";
</script>
<link rel='stylesheet' href='/res/svelte/admin_panel.css?v{{.CacheID}}'>
<script defer src='/res/svelte/admin_panel.js?v{{.CacheID}}'></script>
<link rel='stylesheet' href='/res/svelte/admin_panel.css?v{{cacheID}}'>
<script defer src='/res/svelte/admin_panel.js?v{{cacheID}}'></script>
</head>
<body>
{{template "menu" .}}

View File

@@ -7,8 +7,8 @@
window.api_endpoint = '{{.APIEndpoint}}';
window.user = {{.User}};
</script>
<link rel='stylesheet' href='/res/svelte/directory_upload.css?v{{.CacheID}}'>
<script defer src='/res/svelte/directory_upload.js?v{{.CacheID}}'></script>
<link rel='stylesheet' href='/res/svelte/directory_upload.css?v{{cacheID}}'>
<script defer src='/res/svelte/directory_upload.js?v{{cacheID}}'></script>
</head>
<body>

View File

@@ -28,8 +28,8 @@
window.user_authenticated = {{.Authenticated}};
</script>
<link rel='stylesheet' href='/res/svelte/file_viewer.css?v{{.CacheID}}'>
<script defer src='/res/svelte/file_viewer.js?v{{.CacheID}}'></script>
<link rel='stylesheet' href='/res/svelte/file_viewer.css?v{{cacheID}}'>
<script defer src='/res/svelte/file_viewer.js?v{{cacheID}}'></script>
{{template "analytics"}}
</head>

View File

@@ -27,8 +27,8 @@
window.api_endpoint = '{{.APIEndpoint}}';
</script>
<link rel='stylesheet' href='/res/svelte/filesystem.css?v{{.CacheID}}'>
<script defer src='/res/svelte/filesystem.js?v{{.CacheID}}'></script>
<link rel='stylesheet' href='/res/svelte/filesystem.css?v{{cacheID}}'>
<script defer src='/res/svelte/filesystem.js?v{{cacheID}}'></script>
</head>
<body></body>
</html>

View File

@@ -4,7 +4,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1" />
<meta name="theme-color" content="#220735" />
<link id="stylesheet_layout" rel="stylesheet" type="text/css" href="/res/style/layout.css"/>
<link id="stylesheet_layout" rel="stylesheet" type="text/css" href="/res/style/layout.css?v{{cacheID}}"/>
<link id="stylesheet_theme" rel="stylesheet" type="text/css" href="/theme.css"/>
<link rel="icon" sizes="32x32" href="/res/img/pixeldrain_32.png" />

View File

@@ -14,9 +14,6 @@
box-shadow: inset 0 0 2px 0 var(--shadow_color);
border: none;
}
header>h1 {
color: #ffffff;
}
</style>
<script>
@@ -24,8 +21,8 @@
window.user = {{.User}};
window.server_hostname = "{{.Hostname}}";
</script>
<link rel='stylesheet' href='/res/svelte/home_page.css?v{{.CacheID}}'>
<script defer src='/res/svelte/home_page.js?v{{.CacheID}}'></script>
<link rel='stylesheet' href='/res/svelte/home_page.css?v{{cacheID}}'>
<script defer src='/res/svelte/home_page.js?v{{cacheID}}'></script>
</head>
<body>
{{template "menu" .}}

View File

@@ -7,8 +7,8 @@
<script>
window.api_endpoint = '{{.APIEndpoint}}';
</script>
<link rel='stylesheet' href='/res/svelte/text_upload.css?v{{.CacheID}}'>
<script defer src='/res/svelte/text_upload.js?v{{.CacheID}}'></script>
<link rel='stylesheet' href='/res/svelte/text_upload.css?v{{cacheID}}'>
<script defer src='/res/svelte/text_upload.js?v{{cacheID}}'></script>
</head>
<body id="body"></body>
{{template "analytics"}}

View File

@@ -4,8 +4,8 @@
{{template "meta_tags" "Buckets"}}
<script>window.api_endpoint = '{{.APIEndpoint}}';</script>
<link rel='stylesheet' href='/res/svelte/user_buckets.css?v{{.CacheID}}'>
<script defer src='/res/svelte/user_buckets.js?v{{.CacheID}}'></script>
<link rel='stylesheet' href='/res/svelte/user_buckets.css?v{{cacheID}}'>
<script defer src='/res/svelte/user_buckets.js?v{{cacheID}}'></script>
</head>
<body>
{{template "menu" .}}

View File

@@ -6,8 +6,8 @@
<script>
window.api_endpoint = '{{.APIEndpoint}}';
</script>
<link rel='stylesheet' href='/res/svelte/user_file_manager.css?v{{.CacheID}}'>
<script defer src='/res/svelte/user_file_manager.js?v{{.CacheID}}'></script>
<link rel='stylesheet' href='/res/svelte/user_file_manager.css?v{{cacheID}}'>
<script defer src='/res/svelte/user_file_manager.js?v{{cacheID}}'></script>
</head>
<body>

View File

@@ -8,8 +8,8 @@
window.user = {{.User}};
window.server_hostname = "{{.Hostname}}";
</script>
<link rel='stylesheet' href='/res/svelte/user_home.css?v{{.CacheID}}'>
<script defer src='/res/svelte/user_home.js?v{{.CacheID}}'></script>
<link rel='stylesheet' href='/res/svelte/user_home.css?v{{cacheID}}'>
<script defer src='/res/svelte/user_home.js?v{{cacheID}}'></script>
</head>
<body>

View File

@@ -85,4 +85,8 @@ import UploadWidget from "./UploadWidget.svelte";
background-image: url("/res/img/header_orbitron.webp");
}
}
header>h1{
color: #ffffff;
margin: 40px 10px 40px 10px;
}
</style>

View File

@@ -2,7 +2,6 @@ package webcontroller
import (
"io"
"io/ioutil"
"net/http"
"strings"
@@ -44,7 +43,7 @@ func (wc *WebController) serveFilePreview(w http.ResponseWriter, r *http.Request
}
defer body.Close()
bodyBytes, err := ioutil.ReadAll(body)
bodyBytes, err := io.ReadAll(body)
if err != nil {
log.Error("Can't read text file for preview: %s", err)
w.Write([]byte("An error occurred while reading this file."))

View File

@@ -4,7 +4,6 @@ import (
"encoding/base64"
"fmt"
"html/template"
"io/ioutil"
"net/http"
"net/url"
"os"
@@ -33,9 +32,6 @@ type TemplateData struct {
Title string
OGData ogData
// The cache ID is used to invalidate caches when the webserver is restarted
CacheID int64
Other interface{}
URLQuery url.Values
@@ -53,7 +49,6 @@ func (wc *WebController) newTemplateData(w http.ResponseWriter, r *http.Request)
// Use the user's IP address for making requests
PixelAPI: wc.api.RealIP(util.RemoteAddress(r)).RealAgent(r.UserAgent()),
CacheID: wc.cacheID,
Hostname: template.HTML(wc.hostname),
URLQuery: r.URL.Query(),
}
@@ -129,6 +124,7 @@ func (tm *TemplateManager) ParseTemplates(silent bool) {
// Import template functions
tpl.Funcs(template.FuncMap{
"cacheID": tm.cacheID,
"isBrave": tm.isBrave,
"debugMode": tm.debugMode,
"apiUrl": tm.apiURL,
@@ -172,7 +168,7 @@ func (tm *TemplateManager) ParseTemplates(silent bool) {
return nil
}
if file, err = ioutil.ReadFile(path); err != nil {
if file, err = os.ReadFile(path); err != nil {
return err
}
@@ -214,6 +210,15 @@ func (tm *TemplateManager) Get() *template.Template {
// Template functions. These can be called from within the template to execute
// more specialized actions
// The cache ID is used to invalidate caches when the webserver is restarted.
// It's rounded to a full hour to prevent cached from being emptied too often if
// the server is regularly restarted
var cacheID = time.Now().Unix() / 3600
func (tm *TemplateManager) cacheID() int64 {
return cacheID
}
func (tm *TemplateManager) isBrave(useragent string) bool {
return strings.Contains(useragent, "Brave")
}

View File

@@ -36,9 +36,6 @@ type WebController struct {
// page-specific variables
captchaSiteKey string
// The cache ID is used to invalidate caches when the webserver is restarted
cacheID int64
httpClient *http.Client
// API client to use for all requests. If the user is authenticated you
@@ -69,7 +66,6 @@ func New(
websiteAddress: websiteAddress,
sessionCookieDomain: sessionCookieDomain,
proxyAPIRequests: proxyAPIRequests,
cacheID: time.Now().Unix() / 3600,
httpClient: &http.Client{Timeout: time.Minute * 10},
api: pixelapi.New(apiURLInternal),
}