summaryrefslogtreecommitdiff
path: root/public/index.php
diff options
context:
space:
mode:
authorilotterytea <iltsu@alright.party>2025-03-24 14:07:21 +0500
committerilotterytea <iltsu@alright.party>2025-03-24 14:07:21 +0500
commit52fea7284ff009a6afddbc6e64bdf49c24f2a038 (patch)
treeaf334cf32499e121937db12aae83b6d23f72e521 /public/index.php
parent83db2ca649ee7d4068b070a032800037caf2e116 (diff)
feat: download external files
Diffstat (limited to 'public/index.php')
-rw-r--r--public/index.php76
1 files changed, 64 insertions, 12 deletions
diff --git a/public/index.php b/public/index.php
index 7d07c5b..e08a67a 100644
--- a/public/index.php
+++ b/public/index.php
@@ -26,9 +26,28 @@ include_once $_SERVER['DOCUMENT_ROOT'] . '/../lib/partials.php';
accept="<?= implode(', ', array_unique(array_values(FILE_ACCEPTED_MIME_TYPES))) ?>"
id="form-file">
- <button type="button" id="form-upload-wrapper" style="display: none">
- <h1>Click here to start upload</h1>
- </button>
+ <div class="column gap-8" id="form-upload-wrapper">
+ <button type="button">
+ <h1>Click here to start upload</h1>
+ </button>
+ <?php if (FILEEXT_ENABLED): ?>
+ <div class="row gap-8">
+ <p>URL:</p>
+ <div class="column grow">
+ <input type="url" name="url" id="form-url"
+ placeholder="Instagram, YouTube and other links">
+ <ul class="row gap-8 font-small" style="list-style:none">
+ <li>
+ <p>Max duration: <b><?= FILEEXT_MAX_DURATION / 60 ?> minutes</b></p>
+ </li>
+ <li><a href="https://github.com/yt-dlp/yt-dlp/blob/master/supportedsites.md"
+ target="_blank">Supported
+ platforms</a></li>
+ </ul>
+ </div>
+ </div>
+ <?php endif; ?>
+ </div>
<button type="submit">Upload</button>
</form>
@@ -49,15 +68,30 @@ include_once $_SERVER['DOCUMENT_ROOT'] . '/../lib/partials.php';
<script>
const uploadedFiles = document.getElementById('uploaded-files');
+ <?php if (FILEEXT_ENABLED): ?>
+ const fileURL = document.getElementById('form-url');
+ <?php endif; ?>
const formUpload = document.getElementById('form-upload');
formUpload.addEventListener('submit', (event) => {
event.preventDefault();
- fileUpload();
+ <?php if (FILEEXT_ENABLED): ?>
+ fileUpload(fileURL.value.length != 0);
+ <?php else: ?>
+ fileUpload(false);
+ <?php endif; ?>
});
- const formUploadWrapper = document.getElementById('form-upload-wrapper');
- formUploadWrapper.style.display = 'block';
+ const fileUploadWrapper = document.querySelector('#form-upload-wrapper>button');
+ fileUploadWrapper.style.display = 'block';
+
+ <?php if (FILEEXT_ENABLED): ?>
+ const fileURLWrapper = document.querySelector('#form-upload-wrapper>div');
+ fileURL.addEventListener('change', () => {
+ fileUploadWrapper.style.display = fileURL.value.length == 0 ? 'block' : 'none';
+ formSubmitButton.style.display = fileURL.value.length == 0 ? 'none' : 'block';
+ });
+ <?php endif; ?>
const formSubmitButton = document.querySelector('#form-upload button[type=submit]');
@@ -66,21 +100,31 @@ include_once $_SERVER['DOCUMENT_ROOT'] . '/../lib/partials.php';
formFile.addEventListener("change", (e) => {
const file = e.target.files[0];
if (file) {
- formUploadWrapper.innerHTML = `<h1>File: ${file.name}</h1>`;
+ fileUploadWrapper.innerHTML = `<h1>File: ${file.name}</h1>`;
formSubmitButton.style.display = 'block';
+ <?php if (FILEEXT_ENABLED): ?>
+ fileURLWrapper.style.display = 'none';
+ <?php endif; ?>
}
});
- formUploadWrapper.addEventListener("click", () => formFile.click());
+ fileUploadWrapper.addEventListener("click", () => formFile.click());
formSubmitButton.style.display = 'none';
- function fileUpload() {
- formUploadWrapper.innerHTML = `<h1>Uploading ${formFile.files[0].name}...</h1><p>This might take a while...</p>`;
+ function fileUpload(is_url) {
+ const form = new FormData(formUpload);
+
+ fileUploadWrapper.innerHTML = is_url ? `<h1>Uploading ${fileURL.value}</h1><p>This might take a while...</p>` : `<h1>Uploading ${formFile.files[0].name}...</h1><p>This might take a while...</p>`;
+ fileUploadWrapper.style.display = 'block';
+ <?php if (FILEEXT_ENABLED): ?>
+ fileURLWrapper.style.display = 'none';
+ fileURL.value = '';
+ <?php endif; ?>
formSubmitButton.style.display = 'none';
fetch(formUpload.getAttribute('action'), {
- 'body': new FormData(formUpload),
+ 'body': form,
'method': 'POST',
'headers': {
'Accept': 'application/json'
@@ -89,10 +133,18 @@ include_once $_SERVER['DOCUMENT_ROOT'] . '/../lib/partials.php';
.catch((err) => {
console.error(err);
alert('Failed to send a file. More info in the console...');
+ <?php if (FILEEXT_ENABLED): ?>
+ fileURLWrapper.style.display = 'flex';
+ <?php endif; ?>
+ fileUploadWrapper.style.display = 'block';
})
.then((r) => r.json())
.then((json) => {
- formUploadWrapper.innerHTML = '<h1>Click here to start upload</h1>';
+ fileUploadWrapper.innerHTML = '<h1>Click here to start upload</h1>';
+ <?php if (FILEEXT_ENABLED): ?>
+ fileURLWrapper.style.display = 'flex';
+ <?php endif; ?>
+ fileUploadWrapper.style.display = 'block';
if (json.status_code != 201) {
alert(`${json.message} (${json.status_code})`);