469 lines
16 KiB
HTML
469 lines
16 KiB
HTML
{{define "home"}}
|
|
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
{{template "meta_tags" "Free file sharing service"}}
|
|
{{template "user_style" .}}
|
|
<style>
|
|
.header_image{
|
|
width: 100%;
|
|
max-width: 800px;
|
|
margin: 0 auto 50px auto;
|
|
}
|
|
.big_button{
|
|
width: 40%;
|
|
min-width: 250px;
|
|
max-width: 400px;
|
|
margin: 10px !important;
|
|
border-radius: 5px;
|
|
font-size: 1.8em;
|
|
}
|
|
.instruction_highlight {
|
|
border-top: 1px solid var(--layer_2_color_border);
|
|
border-bottom: 1px solid var(--layer_2_color_border);
|
|
box-sizing: border-box;
|
|
margin: 1.5em 0;
|
|
padding: 5px;
|
|
}
|
|
.big_number {
|
|
font-size: 1.5em;
|
|
font-weight: bold;
|
|
line-height: 1em;
|
|
text-align: center;
|
|
display: inline-block;
|
|
box-sizing: border-box;
|
|
background-color: var(--highlight_color);
|
|
color: var(--highlight_text_color);
|
|
border-radius: 30px;
|
|
padding: 0.15em;
|
|
margin-right: 0.4em;
|
|
width: 1.4em;
|
|
height: 1.4em;
|
|
vertical-align: middle;
|
|
}
|
|
.instruction_text {
|
|
margin: 0.1em;
|
|
font-size: 1.5em;
|
|
display: inline;
|
|
box-sizing: border-box;
|
|
vertical-align: middle;
|
|
}
|
|
.social_button {
|
|
margin: 5px;
|
|
}
|
|
.social_button > img, .social_button > svg {
|
|
width: 40px;
|
|
height: 40px;
|
|
margin: 5px 15px;
|
|
}
|
|
|
|
.feat_table {
|
|
display: flex;
|
|
flex-direction: column;
|
|
}
|
|
.feat_table > div {
|
|
display: flex;
|
|
flex-direction: row;
|
|
}
|
|
.feat_table > div > div:first-child {
|
|
flex: 0 0 20%;
|
|
max-width: 20%;
|
|
}
|
|
.feat_table > div > div {
|
|
flex: 1 1 0;
|
|
margin: 0.25em;
|
|
padding: 0.5em;
|
|
text-align: center;
|
|
word-wrap: break-word;
|
|
hyphens: auto;
|
|
}
|
|
.feat_table > div > .feat_label {
|
|
border-top-left-radius: 0.5em;
|
|
border-bottom-left-radius: 0.5em;
|
|
background-color: var(--layer_1_color);
|
|
}
|
|
.feat_table > div > .feat_normal {
|
|
background-color: var(--layer_3_color);
|
|
box-shadow: 1px 1px 3px -1px var(--shadow_color);
|
|
text-shadow: 1px 1px 3px var(--shadow_color);
|
|
}
|
|
.feat_table > div > .feat_pro {
|
|
background-color: var(--layer_4_color);
|
|
box-shadow: 1px 1px 3px 0 var(--shadow_color);
|
|
text-shadow: 1px 1px 6px var(--shadow_color);
|
|
}
|
|
.feat_table > div > .feat_highlight {
|
|
border: 1px solid var(--highlight_color)
|
|
}
|
|
.text_highlight {
|
|
color: var(--highlight_color);
|
|
text-shadow: 0 0 4px var(--shadow_color);
|
|
font-size: 1.1em;
|
|
font-weight: bold;
|
|
}
|
|
.feat_table > div > .cell_background {
|
|
background-position: center;
|
|
background-size: cover;
|
|
text-align: left;
|
|
font-size: 1.2em;
|
|
padding: 0.2em;
|
|
}
|
|
|
|
.feat_table > div > div.round_tl { border-top-left-radius: 0.5em; }
|
|
.feat_table > div > div.round_tr { border-top-right-radius: 0.5em; }
|
|
.feat_table > div > div.round_br { border-bottom-right-radius: 0.5em; }
|
|
.feat_table > div > div.round_bl { border-bottom-left-radius: 0.5em; }
|
|
|
|
{{template `modal.css`}}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
{{template "page_top" .}}
|
|
|
|
<picture>
|
|
<source media="(max-width: 800px)" srcset="/res/img/header_orbitron.png">
|
|
<img class="header_image" src="/res/img/header_orbitron_wide.png" alt="Header image">
|
|
</picture>
|
|
<br/>
|
|
<div class="page_content" style="padding-top: 0; margin-bottom: 100px;">
|
|
<div id="instruction_1" class="instruction_highlight" style="margin-top: 0;"><div class="limit_width">
|
|
<span class="big_number">1</span>
|
|
<span class="instruction_text">Select files to upload</span>
|
|
<br/>
|
|
You can also drop files anywhere on this page from your file
|
|
manager
|
|
</div></div>
|
|
<input id="file_input_field" type="file" name="file" multiple="multiple"/>
|
|
<button id="upload_file_button" class="big_button button_highlight">
|
|
<i class="icon small">cloud_upload</i>
|
|
<u>U</u>pload Files</button>
|
|
<button id="upload_text_button" class="big_button button_highlight">
|
|
<i class="icon small">text_fields</i>
|
|
Upload <u>T</u>ext</button>
|
|
<br/>
|
|
<p>
|
|
By uploading files to pixeldrain you acknowledge and accept our
|
|
<a href="/about#content-policy">content policy</a>.
|
|
<p>
|
|
<div id="instruction_2" class="instruction_highlight">
|
|
<div class="limit_width">
|
|
<span class="big_number">2</span><span class="instruction_text">Wait for the files to finish uploading</span>
|
|
</div>
|
|
</div>
|
|
<div id="uploads_queue"></div>
|
|
|
|
<div id="instruction_3" class="instruction_highlight">
|
|
<div class="limit_width"><span class="big_number">3</span><span class="instruction_text">Share the files</span></div>
|
|
</div>
|
|
<div id="instruction_3_after" style="display: none">
|
|
<div id="navigator_share_button" style="display: inline-block">
|
|
<button id="btn_social_share" class="social_button">
|
|
{{template `share.svg` .}}<br/>Share
|
|
</button>
|
|
</div>
|
|
<button id="btn_copy_link" class="social_button" style="display: inline-block">
|
|
{{template `copy.svg` .}}<br/><span><u>C</u>opy link</span>
|
|
</button>
|
|
<button id="btn_open_link" class="social_button" style="display: inline-block">
|
|
{{template `open_in_new.svg` .}}<br/><span>Open link</span>
|
|
</button>
|
|
<div id="social_buttons" style="display: inline-block">
|
|
<button id="btn_social_email" class="social_button">
|
|
{{template `email.svg` .}}<br/>E-Mail
|
|
</button>
|
|
<button id="btn_social_twitter" class="social_button">
|
|
{{template `twitter.svg` .}}<br/>Twitter
|
|
</button>
|
|
<button id="btn_social_facebook" class="social_button">
|
|
{{template `facebook.svg` .}}<br/>Facebook
|
|
</button>
|
|
<button id="btn_social_reddit" class="social_button">
|
|
{{template `reddit.svg` .}}<br/>Reddit
|
|
</button>
|
|
<button id="btc_social_tumblr" class="social_button">
|
|
{{template `tumblr.svg` .}}<br/>Tumblr
|
|
</button>
|
|
</div>
|
|
<br/><br/>
|
|
<button id="btn_create_list"><i class="icon">list</i> Create list with uploaded files</button>
|
|
<button id="btn_copy_links"><i class="icon">content_copy</i> Copy all links to clipboard</button>
|
|
<button id="btn_copy_markdown"><i class="icon">content_copy</i> Copy markdown to clipboard</button>
|
|
<button id="btn_copy_bbcode"><i class="icon">content_copy</i> Copy BBCode to clipboard</button>
|
|
<br/>
|
|
<div id="created_lists"></div>
|
|
</div>
|
|
</div>
|
|
|
|
<h1>What is pixeldrain?</h1>
|
|
<div class="page_content"><div class="limit_width">
|
|
<p>
|
|
Pixeldrain is a file sharing website built for speed and
|
|
ease of use. Pixeldrain does not cost any money, though
|
|
donations are appreciated. See how you can support
|
|
pixeldrain below.
|
|
</p>
|
|
<p>
|
|
Files can be uploaded by clicking the big green upload
|
|
button, or by dragging them onto this page from your file
|
|
manager.
|
|
</p>
|
|
<p>
|
|
You can also create lists, which are a collection of files.
|
|
Like a photo album, a music record or a video compilation.
|
|
To do this you need to upload a bunch of files at once. The
|
|
files will be saved in the order you uploaded them. When all
|
|
files have finished uploading you click the "Create list
|
|
with uploaded files" button and you will be asked to enter a
|
|
name for your list. After picking a name the list will be
|
|
created and opened in a new window. If your browser blocks
|
|
the window you can also find a link to the list at the
|
|
bottom of your uploaded files.
|
|
</p>
|
|
|
|
<h2 id="pro">Getting more out of pixeldrain</h2>
|
|
<p>
|
|
By purchasing a subscription you support pixeldrain on its
|
|
mission to make content sharing easier, safer and faster for
|
|
everyone.
|
|
</p>
|
|
<div class="feat_table">
|
|
<div>
|
|
<div></div>
|
|
<div class="feat_normal round_tl">Free</div>
|
|
<div class="feat_pro feat_highlight round_tr">Pro</div>
|
|
</div>
|
|
<div>
|
|
<div class="feat_label">Size limit per file</div>
|
|
<div class="feat_normal">5 GB per file</div>
|
|
<div class="feat_pro"><span class="text_highlight">15 GB</span> per file</div>
|
|
</div>
|
|
<div>
|
|
<div class="feat_label"><a href="javascript:void(0);" onclick="return explainFileExpiry();">File expiry</a></div>
|
|
<div class="feat_normal">30 days after the last time it is viewed</div>
|
|
<div class="feat_pro"><span class="text_highlight">90 days</span> after the last time it is viewed</div>
|
|
</div>
|
|
<div>
|
|
<div class="feat_label">Adver­tise­ments</div>
|
|
<div class="feat_normal">Pop-up or a banner ad on the file viewer page</div>
|
|
<div class="feat_pro">
|
|
<span class="text_highlight">No ads</span> on files
|
|
you share. No ads when viewing files uploaded by
|
|
other users
|
|
</div>
|
|
</div>
|
|
<div>
|
|
<div class="feat_label">Privacy</div>
|
|
<div class="feat_normal">
|
|
No trackers, but advertisers can see your IP address
|
|
and browser fingerprint
|
|
</div>
|
|
<div class="feat_pro">
|
|
<span class="text_highlight">Completely
|
|
private</span>. No third party scripts and no
|
|
logging
|
|
</div>
|
|
</div>
|
|
<div>
|
|
<div class="feat_label">Online file previews</div>
|
|
<div class="feat_pro">View image, video, audio, PDF and text files directly in your web browser</div>
|
|
</div>
|
|
<div>
|
|
<div class="feat_label"><a href="javascript:void(0);" onclick="return explainDirectLinking();">Direct linking</a></div>
|
|
<div class="feat_pro">Rate limiting mode will be enabled when a file has 3 times more downloads than views</div>
|
|
</div>
|
|
<div>
|
|
<div></div>
|
|
<div class="feat_normal round_bl">Free</div>
|
|
<div class="feat_pro feat_highlight round_br">
|
|
{{if eq .User.Subscription.ID "patreon_1"}}
|
|
You have this plan<br/>
|
|
Thank you for supporting pixeldrain!
|
|
{{else}}
|
|
<a href="https://www.patreon.com/join/pixeldrain/checkout?rid=5291427" class="button button_highlight">Only € 2 per month!</a> (Excluding tax)
|
|
<br/>
|
|
Subscription managed by Patreon
|
|
{{end}}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<br/><br/>
|
|
<div style="text-align: center;">
|
|
Do you need even more time and space? Check out our other plans
|
|
</div>
|
|
<br/>
|
|
<div class="feat_table">
|
|
<div>
|
|
<div class="feat_label">Resolve</div>
|
|
<div class="feat_normal">
|
|
<span class="text_highlight">20 GB</span> file size,
|
|
<span class="text_highlight">120 days</span> file expiry
|
|
</div>
|
|
<div class="feat_normal round_tr round_br cell_background" style="background-image: url('/res/img/benefit_5_small.png');">
|
|
{{if eq .User.Subscription.ID "patreon_5"}}
|
|
You have this plan<br/>
|
|
Thank you for supporting pixeldrain!
|
|
{{else}}
|
|
<a href="https://www.patreon.com/join/pixeldrain/checkout?rid=5736701" class="button button_highlight">€ 4</a>
|
|
{{end}}
|
|
</div>
|
|
</div>
|
|
<div>
|
|
<div class="feat_label">Persistence</div>
|
|
<div class="feat_normal">
|
|
<span class="text_highlight">20 GB</span> file size,
|
|
<span class="text_highlight">240 days</span> file expiry
|
|
</div>
|
|
<div class="feat_normal round_tr round_br cell_background" style="background-image: url('/res/img/benefit_2_small.png');">
|
|
{{if eq .User.Subscription.ID "patreon_2"}}
|
|
You have this plan<br/>
|
|
Thank you for supporting pixeldrain!
|
|
{{else}}
|
|
<a href="https://www.patreon.com/join/pixeldrain/checkout?rid=5291482" class="button button_highlight">€ 8</a>
|
|
{{end}}
|
|
</div>
|
|
</div>
|
|
<div>
|
|
<div class="feat_label">Tenacity</div>
|
|
<div class="feat_normal">
|
|
<span class="text_highlight">20 GB</span> file size,
|
|
<span class="text_highlight">480 days</span> file expiry
|
|
</div>
|
|
<div class="feat_normal round_tr round_br cell_background" style="background-image: url('/res/img/benefit_3_small.png');">
|
|
{{if eq .User.Subscription.ID "patreon_3"}}
|
|
You have this plan<br/>
|
|
Thank you for supporting pixeldrain!
|
|
{{else}}
|
|
<a href="https://www.patreon.com/join/pixeldrain/checkout?rid=5291516" class="button button_highlight">€ 16</a>
|
|
{{end}}
|
|
</div>
|
|
</div>
|
|
<div>
|
|
<div class="feat_label">Eternity</div>
|
|
<div class="feat_normal">
|
|
<span class="text_highlight">20 GB</span> file size,
|
|
<span class="text_highlight">960 days</span> file expiry
|
|
</div>
|
|
<div class="feat_normal round_tr round_br cell_background" style="background-image: url('/res/img/benefit_4_small.png');">
|
|
{{if eq .User.Subscription.ID "patreon_4"}}
|
|
You have this plan<br/>
|
|
Thank you for supporting pixeldrain!
|
|
{{else}}
|
|
<a href="https://www.patreon.com/join/pixeldrain/checkout?rid=5291528" class="button button_highlight">€ 32</a>
|
|
{{end}}
|
|
</div>
|
|
</div>
|
|
<div>
|
|
<div class="feat_label">Infinity</div>
|
|
<div class="feat_normal">
|
|
<span class="text_highlight">20 GB</span> file size,
|
|
<span class="text_highlight">1920 days</span> file expiry
|
|
</div>
|
|
<div class="feat_normal round_tr round_br cell_background" style="background-image: url('/res/img/benefit_6_small.png');">
|
|
{{if eq .User.Subscription.ID "patreon_6"}}
|
|
You have this plan<br/>
|
|
Thank you for supporting pixeldrain!
|
|
{{else}}
|
|
<a href="https://www.patreon.com/join/pixeldrain/checkout?rid=6573749" class="button button_highlight">€ 64</a>
|
|
{{end}}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<br/>
|
|
<h2>Premium</h2>
|
|
<div class="highlight_dark">
|
|
Pixeldrain Premium is still in development and not generally
|
|
available yet. Stay tuned.
|
|
</div>
|
|
<p>
|
|
Premium is more catered toward content delivery. This plan
|
|
enables the Buckets feature which provides a more structured way
|
|
to manage your files on pixeldrain. Buckets allow direct linking
|
|
to files without running into rate limiting.
|
|
</p>
|
|
<p>
|
|
When you choose for Premium you will also get all the benefits
|
|
of the Pro subscription. A base rate of €1 per month will be
|
|
billed regardless of your usage.
|
|
</p>
|
|
</div></div>
|
|
|
|
<template id="tpl_file_expiry">
|
|
<p>
|
|
Files on pixeldrain have to expire eventually. If we didn't do
|
|
this the website would keep growing forever and we would run out
|
|
of money pretty quickly.
|
|
</p>
|
|
<p>
|
|
Unlike most other sharing sites pixeldrain uses a postponing
|
|
system for expiring files. When a file is freshly uploaded it
|
|
gets 30 days by default (90 days if you have the pro plan).
|
|
After these 30 days we will check when the file was last viewed.
|
|
Files which are regularly viewed could still bring new users to
|
|
the platform, it would be rude to show these people a File Not
|
|
Found page. So if the file was viewed in the last 30 days we
|
|
will simply postpone the next check a month. If the file was not
|
|
viewed however it will immediately be removed.
|
|
</p>
|
|
<p>
|
|
Views are only counted when someone visits the download page in
|
|
a web browser. This makes sure that users can see that the file
|
|
comes from pixeldrain.
|
|
</p>
|
|
<p>
|
|
This way we can minimize dead links, and you won't have to tell
|
|
your friends to 'hurry and download this before it expires'.
|
|
</p>
|
|
</template>
|
|
<template id="tpl_direct_linking">
|
|
<p>
|
|
When viewing a file on pixeldrain it has to go through the file
|
|
viewer. Files which have three times more downloads than views
|
|
will be rate limited. This happens when downloaders use external
|
|
downloading tools to download the file instead of a web browser.
|
|
</p>
|
|
<p>
|
|
This means that the downloader will be asked to fill in a
|
|
captcha before they can download the file. When the file /
|
|
download ratio drops below 3x again the captcha will be removed
|
|
and direct downloads become possible again.
|
|
</p>
|
|
<p>
|
|
If you need direct linking you can upgrade to the Premium plan.
|
|
Bandwidth will be billed per terabyte.
|
|
</p>
|
|
</template>
|
|
|
|
{{template "page_bottom" .}}
|
|
|
|
<script>
|
|
'use strict';
|
|
let apiEndpoint = '{{.APIEndpoint}}';
|
|
{{template "util.js"}}
|
|
{{template "Modal.js"}}
|
|
{{template "UploadManager.js"}}
|
|
{{template "homepage.js"}}
|
|
|
|
function explainFileExpiry() {
|
|
let m = new Modal(
|
|
document.body, null, "File Expiry Postponing", "600px", "auto"
|
|
)
|
|
m.cloneTemplate("tpl_file_expiry")
|
|
m.open()
|
|
return false
|
|
}
|
|
function explainDirectLinking() {
|
|
let m = new Modal(
|
|
document.body, null, "Direct Linking Bandwidth", "600px", "auto"
|
|
)
|
|
m.cloneTemplate("tpl_direct_linking")
|
|
m.open()
|
|
return false
|
|
}
|
|
</script>
|
|
|
|
{{template "analytics"}}
|
|
</body>
|
|
</html>
|
|
{{end}}
|