summaryrefslogtreecommitdiff
path: root/app/cache.go
diff options
context:
space:
mode:
authorlost+skunk <[email protected]>2024-09-02 11:16:54 +0300
committerlost+skunk <[email protected]>2024-09-02 11:16:54 +0300
commit14645842643c4e5fa542def715ac1629e182388c (patch)
tree80da1c9b891ce8b4f2393311f36f4530176366af /app/cache.go
parent2f8c35ba322e3c8c6e0bff8f7818d4eedf002928 (diff)
downloadskunky-art-14645842643c4e5fa542def715ac1629e182388c.tar.gz
skunky-art-14645842643c4e5fa542def715ac1629e182388c.tar.bz2
skunky-art-14645842643c4e5fa542def715ac1629e182388c.zip
instance list update
Diffstat (limited to 'app/cache.go')
-rw-r--r--app/cache.go31
1 files changed, 17 insertions, 14 deletions
diff --git a/app/cache.go b/app/cache.go
index 6506cfc..cbf2432 100644
--- a/app/cache.go
+++ b/app/cache.go
@@ -26,9 +26,11 @@ func (s skunkyart) DownloadAndSendMedia(subdomain, path string) {
url.WriteString(subdomain)
url.WriteString(".wixmp.com/")
url.WriteString(path)
- url.WriteString("?token=")
- url.WriteString(s.Args.Get("token"))
-
+ if t := s.Args.Get("token"); t != "" {
+ url.WriteString("?token=")
+ url.WriteString(t)
+ }
+
var response []byte
switch {
@@ -40,17 +42,18 @@ func (s skunkyart) DownloadAndSendMedia(subdomain, path string) {
if tempFS[fileName] == nil {
tempFS[fileName] = &file{}
}
- f := *tempFS[fileName]
mx.Unlock()
- if f.Content != nil {
- f.Score += 2
+ if tempFS[fileName].Content != nil {
+ response = tempFS[fileName].Content
+ tempFS[fileName].Score += 2
+ break
} else {
file, err := os.Open(filePath)
if err != nil {
if dwnld := Download(url.String()); dwnld.Status == 200 && dwnld.Headers["Content-Type"][0][:5] == "image" {
- f.Content = dwnld.Body
- try(os.WriteFile(filePath, f.Content, 0700))
+ response = dwnld.Body
+ try(os.WriteFile(filePath, response, 0700))
} else {
s.ReturnHTTPError(dwnld.Status)
return
@@ -58,11 +61,16 @@ func (s skunkyart) DownloadAndSendMedia(subdomain, path string) {
} else {
file, e := io.ReadAll(file)
try(e)
- f.Content = file
+ response = file
}
go func() {
defer restore()
+
+ mx.RLock()
+ tempFS[fileName].Content = response
+ mx.RUnlock()
+
for {
time.Sleep(1 * time.Minute)
@@ -77,11 +85,6 @@ func (s skunkyart) DownloadAndSendMedia(subdomain, path string) {
}
}()
}
-
- mx.Lock()
- tempFS[fileName] = &f
- mx.Unlock()
- response = f.Content
case CFG.Proxy:
dwnld := Download(url.String())
if dwnld.Status != 200 {