From 14c8ea594d67aed5edc540f2e466fbc584c492d4 Mon Sep 17 00:00:00 2001 From: Fornax Date: Sun, 26 Dec 2021 13:21:02 +0100 Subject: [PATCH] Hotlink protection warning on file viewer --- svelte/src/file_viewer/AdLeaderboard.svelte | 2 +- svelte/src/file_viewer/AdSkyscraper.svelte | 4 +- svelte/src/file_viewer/FileViewer.svelte | 9 +- .../file_viewer/viewers/FilePreview.svelte | 5 ++ .../src/file_viewer/viewers/RateLimit.svelte | 84 +++++++++++++++++++ 5 files changed, 96 insertions(+), 8 deletions(-) create mode 100644 svelte/src/file_viewer/viewers/RateLimit.svelte diff --git a/svelte/src/file_viewer/AdLeaderboard.svelte b/svelte/src/file_viewer/AdLeaderboard.svelte index 8e22044..0caa6cf 100644 --- a/svelte/src/file_viewer/AdLeaderboard.svelte +++ b/svelte/src/file_viewer/AdLeaderboard.svelte @@ -29,7 +29,7 @@ onMount(() => { } }) -let set_ad_type = (t) => { +let set_ad_type = async t => { ad_type = t head.load_ad(t) resize() diff --git a/svelte/src/file_viewer/AdSkyscraper.svelte b/svelte/src/file_viewer/AdSkyscraper.svelte index 50a9150..b097c39 100644 --- a/svelte/src/file_viewer/AdSkyscraper.svelte +++ b/svelte/src/file_viewer/AdSkyscraper.svelte @@ -7,7 +7,7 @@ let container let ad_type = "" let visible = false -onMount(async () => { +onMount(() => { let url_ads = new URL(window.location.href).searchParams.get("ads") if (url_ads) { set_ad_type(url_ads) @@ -44,7 +44,7 @@ onMount(async () => { } }) -let set_ad_type = async (t) => { +let set_ad_type = async t => { ad_type = t head.load_ad(t) diff --git a/svelte/src/file_viewer/FileViewer.svelte b/svelte/src/file_viewer/FileViewer.svelte index 87445f9..8c231e4 100644 --- a/svelte/src/file_viewer/FileViewer.svelte +++ b/svelte/src/file_viewer/FileViewer.svelte @@ -531,11 +531,10 @@ const keyboard_event = evt => { /* background-color: var(--layer_2_color); */ background: repeating-linear-gradient( 315deg, - #0b3100 0px, - #0b3100 18px, - #3d0000 20px, - #3d0000 38px, - #0b3100 40px + #034215 0px, + #034215 20px, + #430303 20px, + #430303 40px ); } diff --git a/svelte/src/file_viewer/viewers/FilePreview.svelte b/svelte/src/file_viewer/viewers/FilePreview.svelte index cdb0eb1..bbdcbb9 100644 --- a/svelte/src/file_viewer/viewers/FilePreview.svelte +++ b/svelte/src/file_viewer/viewers/FilePreview.svelte @@ -10,6 +10,7 @@ import Text from "./Text.svelte"; import File from "./File.svelte"; import Abuse from "./Abuse.svelte"; import { file_type } from "../FileUtilities.svelte"; +import RateLimit from "./RateLimit.svelte"; let viewer let viewer_type = "loading" @@ -20,6 +21,8 @@ export const set_file = async file => { return } else if (file.abuse_type !== "") { viewer_type = "abuse" + } else if (file.availability === "file_rate_limited_captcha_required") { + viewer_type = "rate_limit" } else { viewer_type = file_type(file) } @@ -45,6 +48,8 @@ const prev = () => { dispatch("prev") } {:else if viewer_type === "abuse"} + {:else if viewer_type === "rate_limit"} + {:else if viewer_type === "image"} {:else if viewer_type === "video"} diff --git a/svelte/src/file_viewer/viewers/RateLimit.svelte b/svelte/src/file_viewer/viewers/RateLimit.svelte new file mode 100644 index 0000000..fae993c --- /dev/null +++ b/svelte/src/file_viewer/viewers/RateLimit.svelte @@ -0,0 +1,84 @@ + + +
+

+ file_download_off + Hotlink protection enabled +

+ +

+ Hotlinking protection has been enabled for this file. This happens when + a file is downloaded many times outside of our file viewer page (this + page). Usually this means people are using download managers like + JDownloader 2, Aria2 or wget. Using a download manager circumvents + pixeldrain's advertisements and we lose money because of it. More + information about this protection mechanism can be found on the home page. +

+

+ This warning disappears when the you are a + Patreon supporter, + or when the uploader of the file enables + bandwidth sharing on their Pro account + (and their data cap has not been used up). Using a download manager with + a Pro account is allowed, it will not trigger this warning for other + files. +

+

+ Continue downloading +

+

+ The file can be downloaded like usual by clicking the download button. + You will have to complete a CAPTCHA test to prove that you're not a + robot. +

+ + File icon +
+ Name: {file.name}
+ Type: {file.mime_type}
+ + + upgrade Support Pixeldrain on Patreon + +
+
+ +