From af82d45c6ea86c4bfb64e283740e8ac1e27a467c Mon Sep 17 00:00:00 2001 From: Fornax Date: Mon, 7 Feb 2022 12:00:22 +0100 Subject: [PATCH] Add file viewer branding options --- go.mod | 2 + go.sum | 2 - res/include/style/layout.css | 10 +- res/static/misc/amogus.opus | Bin 0 -> 85679 bytes res/template/home.html | 71 +++--- svelte/src/file_viewer/CustomBanner.svelte | 22 ++ svelte/src/file_viewer/EmbedWindow.svelte | 51 ++--- svelte/src/file_viewer/FilePicker.svelte | 3 +- svelte/src/file_viewer/FileViewer.svelte | 53 ++++- svelte/src/file_viewer/GalleryView.svelte | 2 +- svelte/src/file_viewer/viewers/Torrent.svelte | 1 - svelte/src/home_page/HomePage.svelte | 3 + .../user_file_manager/DirectoryElement.svelte | 11 +- svelte/src/user_home/AccountSettings.svelte | 207 ++++++++++++++++-- svelte/src/util/Konami.svelte | 31 +++ svelte/src/util/SuccessMessage.svelte | 18 ++ svelte/src/util/ThemePicker.svelte | 53 +++++ webcontroller/file_viewer.go | 14 ++ webcontroller/templates.go | 20 +- webcontroller/user_style.go | 6 +- 20 files changed, 477 insertions(+), 103 deletions(-) create mode 100644 res/static/misc/amogus.opus create mode 100644 svelte/src/file_viewer/CustomBanner.svelte create mode 100644 svelte/src/util/Konami.svelte create mode 100644 svelte/src/util/SuccessMessage.svelte create mode 100644 svelte/src/util/ThemePicker.svelte diff --git a/go.mod b/go.mod index d5d7d95..f48f61f 100644 --- a/go.mod +++ b/go.mod @@ -2,6 +2,8 @@ module fornaxian.tech/pixeldrain_web go 1.17 +replace fornaxian.tech/pixeldrain_api_client => ../pixeldrain_api_client + require ( fornaxian.tech/config v0.0.0-20211108212237-6133aed90586 fornaxian.tech/log v0.0.0-20211102185326-552e9b1f8640 diff --git a/go.sum b/go.sum index aa1732e..f488720 100644 --- a/go.sum +++ b/go.sum @@ -3,8 +3,6 @@ fornaxian.tech/config v0.0.0-20211108212237-6133aed90586/go.mod h1:ULIXF4J1DbBw4 fornaxian.tech/log v0.0.0-20190617093801-1c7ce9a7c9b3/go.mod h1:OyWUNsNPlo5AmlOHvJ4s6WcStQw+9rQyBMwmTz0buEM= fornaxian.tech/log v0.0.0-20211102185326-552e9b1f8640 h1:UPDxJwLRCfh/cv80UMSanzmZ0jIcfS1mcd0Y06HYuLw= fornaxian.tech/log v0.0.0-20211102185326-552e9b1f8640/go.mod h1:sN82qMToeHhP2u3ehvrcE8y1IudRZJAZO9yG5OBYblo= -fornaxian.tech/pixeldrain_api_client v0.0.0-20220127185304-6a60644d957e h1:/PLg0AMCPx6Uft5oPb70ogK127/oWrRGadPU0kvqRv8= -fornaxian.tech/pixeldrain_api_client v0.0.0-20220127185304-6a60644d957e/go.mod h1:uajB2ofEsefUtxjvs4m7SDyPVRlfrI3qzCSWcud47hY= fornaxian.tech/util v0.0.0-20211102152345-9a486dee9787 h1:9ujI8Qi6+FTL/YW6xQAS9DmWDMerHBe8foQvVD/G/i0= fornaxian.tech/util v0.0.0-20211102152345-9a486dee9787/go.mod h1:FqVgfghmxTGR3l9Zx4MOMeZ9KHjiEFl3s3C0BSTvBwk= github.com/BurntSushi/toml v0.4.1/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= diff --git a/res/include/style/layout.css b/res/include/style/layout.css index 044f53e..110b4c9 100644 --- a/res/include/style/layout.css +++ b/res/include/style/layout.css @@ -105,7 +105,7 @@ footer { .page_navigation { position: fixed; backface-visibility: hidden; - width: 18em; + width: 17em; height: 100%; left: 0; float: left; @@ -119,7 +119,7 @@ footer { position: absolute; right: 0; height: auto; - left: 18em; + left: 17em; min-width: 300px; display: inline-block; text-align: center; /* Center the header and body */ @@ -131,7 +131,7 @@ footer { padding: 8px; transition: left 0.5s; } -@media (max-width: 1000px) { +@media (max-width: 1200px) { .page_navigation { left: -18em; } @@ -467,7 +467,9 @@ select:disabled , select.disabled { cursor: not-allowed; } button > i, -.button > i { +.button > i, +button > svg, +.button > svg { vertical-align: middle; line-height: 1; } diff --git a/res/static/misc/amogus.opus b/res/static/misc/amogus.opus new file mode 100644 index 0000000000000000000000000000000000000000..7d6167a03b347349d3a20d736e801724bf1833f8 GIT binary patch literal 85679 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

+Of{B)w}G@}_u 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

Eb{wk& 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%0AiN80>d%s`n@f}vA$D2jK7GZ6H0AHF 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 literal 0 HcmV?d00001 diff --git a/res/template/home.html b/res/template/home.html index 5ffb82b..843a679 100644 --- a/res/template/home.html +++ b/res/template/home.html @@ -60,9 +60,9 @@ background-position: center; background-size: cover; text-align: left; - font-size: 1.1em; + font-size: 1.2em; color: #ffffff; - text-shadow: 1px 1px 4px #000000; + text-shadow: 1px 1px 3px #000000; } .feat_table > div > div.round_tl { border-top-left-radius: 0.5em; } @@ -298,10 +298,10 @@ {{end}}

@@ -315,10 +315,16 @@ {{end}}
-
20 GB max file size
+
20 GB max file size
360 days file expiry
-
4 TB transfer limit
-
4 TB storage space
+
4 TB transfer limit
+
4 TB storage space
+
+ File viewer + branding: Set a custom theme and header, + footer and background images on the download pages + for your files +
@@ -332,10 +338,11 @@ {{end}}
-
20 GB max file size
+
20 GB max file size
Files never expire
-
8 TB transfer limit
-
8 TB storage space
+
8 TB transfer limit
+
8 TB storage space
+
File viewer branding
@@ -349,10 +356,11 @@ {{end}}
-
20 GB max file size
+
20 GB max file size
Files never expire
-
16 TB transfer limit
-
16 TB storage space
+
16 TB transfer limit
+
16 TB storage space
+
File viewer branding
@@ -366,10 +374,11 @@ {{end}}
-
20 GB max file size
+
20 GB max file size
Files never expire
-
32 TB transfer limit
-
32 TB storage space
+
32 TB transfer limit
+
32 TB storage space
+
File viewer branding
@@ -385,10 +394,11 @@ {{end}}
-
20 GB max file size
+
20 GB max file size
Files never expire
-
48 TB transfer limit
-
48 TB storage space
+
48 TB transfer limit
+
48 TB storage space
+
File viewer branding
@@ -404,10 +414,11 @@ {{end}}
-
20 GB max file size
+
20 GB max file size
Files never expire
-
64 TB transfer limit
-
64 TB storage space
+
64 TB transfer limit
+
64 TB storage space
+
File viewer branding
@@ -423,10 +434,11 @@ {{end}}
-
20 GB max file size
+
20 GB max file size
Files never expire
-
96 TB transfer limit
-
96 TB storage space
+
96 TB transfer limit
+
96 TB storage space
+
File viewer branding
@@ -442,10 +454,11 @@ {{end}}
-
20 GB max file size
+
20 GB max file size
Files never expire
-
128 TB transfer limit
-
128 TB storage space
+
128 TB transfer limit
+
128 TB storage space
+
File viewer branding
diff --git a/svelte/src/file_viewer/CustomBanner.svelte b/svelte/src/file_viewer/CustomBanner.svelte new file mode 100644 index 0000000..57ab480 --- /dev/null +++ b/svelte/src/file_viewer/CustomBanner.svelte @@ -0,0 +1,22 @@ + + +{#if src} +
+ User-provided banner +
+{/if} + + diff --git a/svelte/src/file_viewer/EmbedWindow.svelte b/svelte/src/file_viewer/EmbedWindow.svelte index 7ba17e4..c145c9b 100644 --- a/svelte/src/file_viewer/EmbedWindow.svelte +++ b/svelte/src/file_viewer/EmbedWindow.svelte @@ -1,4 +1,5 @@ @@ -142,38 +153,8 @@ const example = () => { You can change the pixeldrain theme for your embedded file. Try the available themes
here.

-
- - - - - - - - - - -
+ + set_style(e.detail)}> {:else}

Direct link

@@ -201,7 +182,7 @@ const example = () => { Copy HTML {/if} - diff --git a/svelte/src/file_viewer/FilePicker.svelte b/svelte/src/file_viewer/FilePicker.svelte index 8274d2a..2f2b2b8 100644 --- a/svelte/src/file_viewer/FilePicker.svelte +++ b/svelte/src/file_viewer/FilePicker.svelte @@ -5,6 +5,7 @@ import DirectoryElement from "../user_file_manager/DirectoryElement.svelte"; import Modal from "../util/Modal.svelte"; let dispatch = createEventDispatcher() +export let multi_select = true let modal; let directory_element; let input_search; @@ -92,7 +93,7 @@ const keydown = (e) => {

- +
diff --git a/svelte/src/file_viewer/FileViewer.svelte b/svelte/src/file_viewer/FileViewer.svelte index bb56dc1..531e93e 100644 --- a/svelte/src/file_viewer/FileViewer.svelte +++ b/svelte/src/file_viewer/FileViewer.svelte @@ -19,6 +19,7 @@ import Sharebar from "./Sharebar.svelte"; import GalleryView from "./GalleryView.svelte"; import Spinner from "../util/Spinner.svelte"; import Downloader from "./Downloader.svelte"; +import CustomBanner from "./CustomBanner.svelte"; let loading = true let embedded = false @@ -145,6 +146,10 @@ const open_list = l => { // correct file is opened is_list = true + if (l.files.length !== 0) { + apply_customizations(l.files[0]) + } + hash_change() } const hash_change = () => { @@ -200,6 +205,8 @@ const open_file_index = async index => { document.title = file.name+" ~ pixeldrain" } + apply_customizations(file) + // Register a file view fetch(window.api_endpoint + "/file/" + file.id + "/view", { method: "POST", @@ -215,6 +222,30 @@ const toggle_gallery = () => { } } +// Premium page customizations. In the gallery view we will use the +// customizations for the first file in the list, else we simply use the +// selected file. In most cases they are all the same so the user won't notice +// any change +let file_preview_background +let custom_header = "" +let custom_background = "" +let custom_footer = "" +const apply_customizations = file => { + if (file.custom_header) { + custom_header = window.api_endpoint+"/file/"+file.custom_header + } + if (file.custom_footer) { + custom_footer = window.api_endpoint+"/file/"+file.custom_footer + } + + if (file.custom_background) { + custom_background = window.api_endpoint+"/file/"+file.custom_background + file_preview_background.style.backgroundImage = "url('"+custom_background+"')" + } else { + file_preview_background.style.backgroundImage = "" + } +} + let supports_fullscreen = !!document.documentElement.requestFullscreen let fullscreen = false const toggle_fullscreen = () => { @@ -378,6 +409,8 @@ const keyboard_event = evt => { {/if} + +
{#if view === "file"} @@ -523,7 +556,13 @@ const keyboard_event = evt => {
-
+
{#if view === "file"} { {#if ads_enabled} + {:else if custom_footer} + {:else if !window.viewer_data.user_ads_enabled && !embedded}
Thank you for supporting pixeldrain! @@ -660,7 +701,7 @@ const keyboard_event = evt => { height: auto; margin: 0; } -.file_preview { +.file_preview_container { position: absolute; left: 0; right: 0; @@ -676,6 +717,12 @@ const keyboard_event = evt => { box-shadow: inset 2px 2px 10px 2px var(--shadow_color); border-radius: 16px; } +.file_preview_container.toolbar_visible { left: 8em; } +.file_preview_container.skyscraper_visible { right: 160px; } +.file_preview_container.custom_background { + background-size: cover; + background-position: center; +} /* Toolbars */ .toolbar { @@ -692,8 +739,6 @@ const keyboard_event = evt => { z-index: 1; } .toolbar.toolbar_visible { left: 0; } -.file_preview.toolbar_visible { left: 8em; } -.file_preview.skyscraper_visible { right: 160px; } /* Workaround to hide the scrollbar in non webkit browsers, it's really ugly' */ .toolbar > div { diff --git a/svelte/src/file_viewer/GalleryView.svelte b/svelte/src/file_viewer/GalleryView.svelte index a2e3249..058c340 100644 --- a/svelte/src/file_viewer/GalleryView.svelte +++ b/svelte/src/file_viewer/GalleryView.svelte @@ -156,7 +156,7 @@ const drop = (e, index) => { {/if}
- {add_files(e.detail)}}> + {add_files(e.detail)}} multi_select={true}> diff --git a/svelte/src/util/Konami.svelte b/svelte/src/util/Konami.svelte new file mode 100644 index 0000000..8544062 --- /dev/null +++ b/svelte/src/util/Konami.svelte @@ -0,0 +1,31 @@ + + + diff --git a/svelte/src/util/SuccessMessage.svelte b/svelte/src/util/SuccessMessage.svelte new file mode 100644 index 0000000..e371057 --- /dev/null +++ b/svelte/src/util/SuccessMessage.svelte @@ -0,0 +1,18 @@ + + +{#if m} +
+ {m} +
+{/if} diff --git a/svelte/src/util/ThemePicker.svelte b/svelte/src/util/ThemePicker.svelte new file mode 100644 index 0000000..4ad162b --- /dev/null +++ b/svelte/src/util/ThemePicker.svelte @@ -0,0 +1,53 @@ + + +
+ + + + + + + + + + + +
+ + diff --git a/webcontroller/file_viewer.go b/webcontroller/file_viewer.go index a63da8e..a059f70 100644 --- a/webcontroller/file_viewer.go +++ b/webcontroller/file_viewer.go @@ -97,6 +97,8 @@ func (wc *WebController) serveFileViewer(w http.ResponseWriter, r *http.Request, templateData.Other = vd + fileStyleOverride(templateData, files) + for _, file := range files { if file.AbuseType != "" { w.WriteHeader(http.StatusUnavailableForLegalReasons) @@ -157,6 +159,8 @@ func (wc *WebController) serveListViewer(w http.ResponseWriter, r *http.Request, } templateData.Other = vd + fileStyleOverride(templateData, list.Files) + for _, file := range list.Files { if file.AbuseType != "" { w.WriteHeader(http.StatusUnavailableForLegalReasons) @@ -175,6 +179,16 @@ func (wc *WebController) serveListViewer(w http.ResponseWriter, r *http.Request, } } +func fileStyleOverride(td *TemplateData, files []pixelapi.ListFile) { + if len(files) == 0 { + return + } + + if files[0].CustomTheme != "" { + td.setStyle(userStyle(files[0].CustomTheme)) + } +} + // ServeFileViewerDemo is a dummy API response that responds with info about a // non-existent demo file. This is required by the a-ads ad network to allow for // automatic checking of the presence of the ad unit on this page. diff --git a/webcontroller/templates.go b/webcontroller/templates.go index 9e0b4f7..ad3de86 100644 --- a/webcontroller/templates.go +++ b/webcontroller/templates.go @@ -21,6 +21,7 @@ import ( // TemplateData is a struct that every template expects when being rendered. In // the field Other you can pass your own template-specific variables. type TemplateData struct { + tpm *TemplateManager Authenticated bool User pixelapi.UserInfo UserAgent string @@ -45,15 +46,18 @@ type TemplateData struct { Form Form } +func (td *TemplateData) setStyle(style pixeldrainStyleSheet) { + td.Style = style + td.UserStyle = template.CSS(style.String()) + td.BackgroundPattern = style.Background(td.tpm.tpl) +} + func (wc *WebController) newTemplateData(w http.ResponseWriter, r *http.Request) (t *TemplateData) { - var style = userStyle(r) t = &TemplateData{ - Authenticated: false, - UserAgent: r.UserAgent(), - Style: style, - UserStyle: template.CSS(style.String()), - BackgroundPattern: style.Background(wc.templates.tpl), - APIEndpoint: template.URL(wc.apiURLExternal), + tpm: wc.templates, + Authenticated: false, + UserAgent: r.UserAgent(), + APIEndpoint: template.URL(wc.apiURLExternal), // Use the user's IP address for making requests PixelAPI: wc.api.RealIP(util.RemoteAddress(r)).RealAgent(r.UserAgent()), @@ -63,6 +67,8 @@ func (wc *WebController) newTemplateData(w http.ResponseWriter, r *http.Request) URLQuery: r.URL.Query(), } + t.setStyle(userStyleFromRequest(r)) + // If the user is authenticated we'll indentify him and put the user info // into the templatedata. This is used for putting the username in the menu // and stuff like that diff --git a/webcontroller/user_style.go b/webcontroller/user_style.go index 338b431..8c353ac 100644 --- a/webcontroller/user_style.go +++ b/webcontroller/user_style.go @@ -9,7 +9,7 @@ import ( "time" ) -func userStyle(r *http.Request) (s pixeldrainStyleSheet) { +func userStyleFromRequest(r *http.Request) (s pixeldrainStyleSheet) { // Get the chosen style from the URL var style = r.URL.Query().Get("style") @@ -20,6 +20,10 @@ func userStyle(r *http.Request) (s pixeldrainStyleSheet) { } } + return userStyle(style) +} + +func userStyle(style string) (s pixeldrainStyleSheet) { switch style { case "classic": s = pixeldrainClassicStyle