Make CacheID global
This commit is contained in:
@@ -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;
|
||||
|
@@ -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" .}}
|
||||
|
@@ -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>
|
||||
|
@@ -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>
|
||||
|
@@ -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>
|
||||
|
@@ -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" />
|
||||
|
@@ -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" .}}
|
||||
|
@@ -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"}}
|
||||
|
@@ -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" .}}
|
||||
|
@@ -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>
|
||||
|
@@ -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>
|
||||
|
@@ -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>
|
||||
|
@@ -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."))
|
||||
|
@@ -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")
|
||||
}
|
||||
|
@@ -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),
|
||||
}
|
||||
|
Reference in New Issue
Block a user