- Scan ID:
- af01af1e-e606-4a23-b79b-467d2691739bFinished
- Submitted URL:
- https://buzzheavier.com/
- Report Finished:
Links · 1 found
The outgoing links identified from the page
Link | Text |
---|---|
https://i.giphy.com/media/v1.Y2lkPTc5MGI3NjExOGdqdWEwaDR5enB5bXYzdGt2YXRkb2ppMWN2M3o2OHpwdDJoY250MyZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/7zSO56YSB0DhNvBUWt/giphy.gif | until |
JavaScript Variables · 13 found
Global JavaScript variables loaded on the window object of a page, are variables declared outside of functions and accessible from anywhere in the code within the current scope
Name | Type |
---|---|
onbeforetoggle | object |
documentPictureInPicture | object |
onscrollend | object |
uploadManager | function |
App | function |
htmx | object |
humanReadableSize | function |
copyTextToClipboard | function |
copyTextToClipboardFallback | function |
addFileToHistory | function |
Console log messages · 1 found
Messages logged to the web console
Type | Category | Log |
---|---|---|
error | network |
|
HTML
The raw HTML body of the page
<!DOCTYPE html><html lang="en"><head>
<meta charset="UTF-8">
<meta content="width=device-width, initial-scale=1.0" name="viewport">
<title>buzzheavier.com</title>
<meta name="title" content="buzzheavier.com">
<meta name="description" content="Simple fast anonymous file sharing for everyone.">
<meta name="application-name" content="buzzheavier.com">
<script src="/static/main.js?v=e3715aaba893b1fb6b95d87a8390cef71c9bb74a-dirty" defer=""></script>
<script src="/static/exts.js?v=e3715aaba893b1fb6b95d87a8390cef71c9bb74a-dirty" defer=""></script>
<link rel="stylesheet" href="/static/whysostylish.css?v=e3715aaba893b1fb6b95d87a8390cef71c9bb74a-dirty">
<script src="https://challenges.cloudflare.com/turnstile/v0/api.js" defer=""></script>
<style> .htmx-indicator{opacity:0} .htmx-request .htmx-indicator{opacity:1; transition: opacity 200ms ease-in;} .htmx-request.htmx-indicator{opacity:1; transition: opacity 200ms ease-in;} </style></head>
<body class="min-h-screen p-1.5" x-data="App()">
<div>
<div>
<p class="text-center text-4xl font-bold mt-1 mb-0">BUZZHEAVIER</p>
<p class="text-center mt-0">Simple fast anonymous file sharing for everyone.</p>
</div>
<ul id="menu" class="text-center p-0 mb-7">
<li>Index</li>
<li><a href="/history">History</a></li>
<li><a href="/help">Help</a></li>
<li><a href="/developers">Developers</a></li>
<li><a href="/mirrors">Mirrors</a></li>
<li><a href="/privacy">Privacy</a></li>
<li><a href="/terms">Terms</a></li>
<li><a href="/contact">Contact</a></li>
<li><a href="/login">Login</a></li>
</ul>
<div class="mx-auto max-w-[60rem]" hx-ext="response-targets">
<div>
<p>buzzheavier.com is a simple, fast and privacy-oriented file hosting provider.</p>
<div x-data="uploadManager()">
<label for="file-input"><input type="file" id="file-input" multiple=""></label>
<label>
Expiry
<select x-model="selectedExpiry">
<option value="">Never</option>
<option value="3600">1 hour</option>
<option value="43200">12 hours</option>
<option value="86400">1 day</option>
<option value="259200">3 days</option>
<option value="604800">7 days</option>
<option value="2592000">30 days</option>
</select>
</label>
<button id="upload-button" @click="upload($event)">Upload</button>
<button @click="abort()" :disabled="queued.filter(t => t.status === 'inprogress').length === 0" disabled="disabled">Cancel</button>
<button class="copy" @click="copyLinks()" :disabled="completed.length === 0" disabled="disabled">Copy links</button>
<ul>
<template x-for="task in queued">
<li x-show="task.status !== 'completed'">
<div class="flex-col flex">
<span x-text="task.file.name" class="mt-2"></span>
<div class="progress">
<div class="progress-bar gay-background" :style="'width: ' + task.stats.progress + '%;'" :class="{'progress-bar-danger': task.error}"></div>
</div>
<div class="flex justify-between">
<span x-text="task.statsText" :class="{'text-danger': task.error}"></span>
<button x-show="task.status === 'inprogress'" @click="task.abort()">Cancel</button>
</div>
</div>
</li>
</template>
<template x-for="task in completed">
<li>
<a :href="task.link" x-text="`${task.file.name} - ${humanReadableSize(task.file.size)}`" target="_blank"></a>
</li>
</template>
</ul>
<p>Files uploaded from here won't be saved to your account.</p>
</div>
<p>Our main features include</p>
<ul>
<li>It's fast. (not really)</li>
<li>No bloatware.</li>
<li>No file size limits.</li>
<li>Keep your file forever. (or
<a href="https://i.giphy.com/media/v1.Y2lkPTc5MGI3NjExOGdqdWEwaDR5enB5bXYzdGt2YXRkb2ppMWN2M3o2OHpwdDJoY250MyZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/7zSO56YSB0DhNvBUWt/giphy.gif">until</a>)
</li>
<li>No download speed caps.</li>
<li>Doesn't track you - no logs who download who upload.</li>
</ul>
<div>
<p>
<span>Account - </span> <a href="/login">Login</a> / <a href="/login">Signup</a>
</p>
</div>
<p>We emphasize Privacy, Net Neutrality and Free Software.</p>
<p class="text-right">
<i>Malo periculosam libertatem quam quietum servitium.</i>
</p>
</div>
<script>
function uploadManager() {
return {
queued: [],
completed: [],
running: 0,
concurrency: 5,
uploadUrl: 'https:\/\/w.buzzheavier.com',
selectedExpiry: null,
get expiry() {
const expiry = parseInt(this.selectedExpiry, 10)
if (isNaN(expiry) || !isFinite(expiry)) return false
return expiry
},
get settings() {
return {
expiry: this.expiry,
directoryId: null,
baseUrl: this.uploadUrl,
}
},
upload() {
const fi = document.getElementById("file-input")
const files = Array.from(fi.files)
if (!files || files.length === 0) return;
const findOne = files.filter(f => f.name.length > 200)
if (findOne.length) this.error = "file name must not exceed more than 200 characters"
else {
for (const file of files) {
const mp = new Uploader(file, this.settings, false)
this.queued.push(Alpine.reactive(mp))
this.process()
}
}
fi.value = null
},
process() {
this.queued.forEach((task) => {
if (task.status === "queued" && this.running < this.concurrency) {
this.running += 1;
task.upload().finally(() => {
if (task.status === "completed") {
this.completed.push(task)
if (!this.expiry) {
addFileToHistory({id: task.id, name: task.file.name, size: humanReadableSize(task.file.size)})
}
}
this.running -= 1;
this.process();
})
}
});
this.queued = this.queued.filter(task => task !== undefined);
},
abort() {
this.queued.forEach((task) => {
if (task.status !== "aborted" || task.status !== "completed") {
task.abort()
}
});
},
copyLinks() {
const links = []
this.completed.forEach(task => {
links.push(task.link)
})
copyTextToClipboard(links.join('\n'))
},
init() {
window.addEventListener('beforeunload', (e) => {
const foundOne = this.queued.findIndex(task => task.status === "inprogress")
if (foundOne !== -1) {
e.preventDefault();
e.returnValue = 'You have an ongoing upload. Are you sure you want to leave?';
return 'You have an ongoing upload. Are you sure you want to leave?';
}
});
}
}
}
function App() {
return {
};
}
</script>
</div>
</div>
<div class="text-center text-danger mt-9">
<div id="flash"></div>
</div>
<script>if (!this.App) this.App = () => ({});</script>
<script defer="" src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon="{"rayId":"8d801dd52a11384a","version":"2024.10.3","serverTiming":{"name":{"cfExtPri":true,"cfL4":true,"cfSpeedBrain":true,"cfCacheStatus":true}},"token":"c1361d0ed928439489c7829da1f19fac","b":1}" crossorigin="anonymous"></script>
</body></html>