diff --git a/app/api.js b/app/api.js index f32b5abf..f9a5d5f0 100644 --- a/app/api.js +++ b/app/api.js @@ -216,6 +216,7 @@ function download(id, keychain, onprogress, canceller) { const blob = new Blob([xhr.response]); resolve(blob); }); + xhr.addEventListener('progress', function(event) { if (event.lengthComputable && event.target.status === 200) { onprogress([event.loaded, event.total]); @@ -224,8 +225,10 @@ function download(id, keychain, onprogress, canceller) { const auth = await keychain.authHeader(); xhr.open('get', `/api/download/${id}`); xhr.setRequestHeader('Authorization', auth); + xhr.setRequestHeader('Connection', 'close'); xhr.responseType = 'blob'; xhr.send(); + onprogress([0, 1]); }); } diff --git a/app/main.js b/app/main.js index 353afa1a..d6ee9125 100644 --- a/app/main.js +++ b/app/main.js @@ -4,6 +4,7 @@ import app from './routes'; import locale from '../common/locales'; import fileManager from './fileManager'; import dragManager from './dragManager'; +import pasteManager from './pasteManager'; import { canHasSend } from './utils'; import storage from './storage'; import metrics from './metrics'; @@ -48,5 +49,6 @@ app.use(metrics); app.use(fileManager); app.use(dragManager); app.use(experiments); +app.use(pasteManager); app.mount('body'); diff --git a/app/pasteManager.js b/app/pasteManager.js new file mode 100644 index 00000000..7fcaa1dc --- /dev/null +++ b/app/pasteManager.js @@ -0,0 +1,25 @@ +/* global MAXFILESIZE */ +import { bytes } from './utils'; + +export default function(state, emitter) { + window.addEventListener('paste', event => { + if (state.route !== '/' || state.uploading) return; + + for (const item of event.clipboardData.items) { + if (!item.type.includes('image')) continue; + + const file = item.getAsFile(); + + if (!file) continue; // Sometimes null + + if (file.size > MAXFILESIZE) { + // eslint-disable-next-line no-alert + alert(state.translate('fileTooBig', { size: bytes(MAXFILESIZE) })); + continue; + } + + emitter.emit('upload', { file, type: 'paste' }); + return; // return here since only one file is allowed to be uploaded at a time + } + }); +} diff --git a/app/templates/file/index.js b/app/templates/file/index.js index 2d7d8937..0d83c1ad 100644 --- a/app/templates/file/index.js +++ b/app/templates/file/index.js @@ -19,7 +19,8 @@ module.exports = function(file, state, emit) { onclick=${copyClick} src="${assets.get('copy-16.svg')}" class="cursor--pointer" - title="${state.translate('copyUrlHover')}"> + title="${state.translate('copyUrlHover')}" + tabindex="0"> @@ -33,7 +34,8 @@ module.exports = function(file, state, emit) { onclick=${showPopup} src="${assets.get('close-16.svg')}" class="cursor--pointer" - title="${state.translate('deleteButtonHover')}"> + title="${state.translate('deleteButtonHover')}" + tabindex="0"> ${deletePopup( state.translate('deletePopupText'), state.translate('deletePopupYes'), diff --git a/app/templates/footer/index.js b/app/templates/footer/index.js index a0ad4de5..cfe94c55 100644 --- a/app/templates/footer/index.js +++ b/app/templates/footer/index.js @@ -6,8 +6,7 @@ module.exports = function(state) {
+ class="legalSection__link"> + class="socialSection__link"> + class="socialSection__link"> +downloadCount = + { $num -> [one] 1 endirmə *[other] { $num } endirmə } -timespanHours = { $num -> +timespanHours = + { $num -> [one] 1 saat *[other] { $num } saat } diff --git a/public/locales/bn-BD/send.ftl b/public/locales/bn-BD/send.ftl index e2f88d0d..91c6581b 100644 --- a/public/locales/bn-BD/send.ftl +++ b/public/locales/bn-BD/send.ftl @@ -1,4 +1,4 @@ -// Firefox Send is a brand name and should not be localized. +# Firefox Send is a brand name and should not be localized. title = Firefox Send siteSubtitle = ওয়েব গবেষণা siteFeedback = প্রতিক্রিয়া @@ -15,11 +15,13 @@ uploadingPageCancel = আপলোড বাতিল করুন uploadCancelNotification = আপনার অাপলোড বাতিল করা হয়েছে। uploadSuccessConfirmHeader = পাঠানোর জন্য প্রস্তুত uploadSvgAlt = আপলোড -downloadCount = { $num -> +downloadCount = + { $num -> [one] 1 ডাউনলোড *[other] { $num } ডাউনলোডগুলো } -timespanHours = { $num -> +timespanHours = + { $num -> [one] 1 ঘন্টা *[other] { $num } ঘন্টা } @@ -27,20 +29,20 @@ copyUrlFormButton = ক্লিপবোর্ডে কপি করুন copiedUrl = কপি করা হয়েছে! deleteFileButton = ফাইল মুছুন sendAnotherFileLink = আরেকটি ফাইল পাঠান -// Alternative text used on the download link/button (indicates an action). +# Alternative text used on the download link/button (indicates an action). downloadAltText = ডাউনলোড downloadsFileList = ডাউনলোডগুলো -// Used as header in a column indicating the amount of time left before a -// download link expires (e.g. "10h 5m") +# Used as header in a column indicating the amount of time left before a +# download link expires (e.g. "10h 5m") timeFileList = সময় -// Used as header in a column indicating the number of times a file has been -// downloaded +# Used as header in a column indicating the number of times a file has been +# downloaded downloadFileName = ডাউনলোড { $filename } downloadFileSize = ({ $size }) unlockInputLabel = পাসওয়ার্ড লিখুন unlockInputPlaceholder = পাসওয়ার্ড unlockButtonLabel = আনলক করুন -// Text and title used on the download link/button (indicates an action). +# Text and title used on the download link/button (indicates an action). downloadButtonLabel = ডাউনলোড downloadNotification = আপনার ডাউনলোড সম্পন্ন হয়েছে। downloadFinish = ডাউনলোড সম্পন্ন @@ -53,7 +55,7 @@ updateFirefox = Firefox হালনাগাদ করুন downloadFirefoxButtonSub = বিনামূল্যে ডাউনলোড uploadedFile = ফাইল copyFileList = URL অনুলিপি করুন -// expiryFileList is used as a column header +# expiryFileList is used as a column header expiryFileList = মেয়াদোত্তীর্ণ তারিখ deleteFileList = মুছে ফেলুন nevermindButton = কিছু মনে করবেন না @@ -64,7 +66,7 @@ deletePopupCancel = বাতিল deleteButtonHover = মুছে ফেলুন copyUrlHover = URL অনুলিপি করুন footerLinkLegal = আইনগত -// Test Pilot is a proper name and should not be localized. +# Test Pilot is a proper name and should not be localized. footerLinkAbout = Test Pilot পরিচিতি footerLinkPrivacy = গোপনীয়তা footerLinkTerms = শর্তাবলী diff --git a/public/locales/bs/send.ftl b/public/locales/bs/send.ftl index b7f4f735..f6c9557e 100644 --- a/public/locales/bs/send.ftl +++ b/public/locales/bs/send.ftl @@ -26,12 +26,14 @@ uploadSuccessConfirmHeader = Spremno za slanje uploadSvgAlt = Otpremi uploadSuccessTimingHeader = Veza prema vašoj datoteci će isteći nakon prvog preuzimanja ili za 24 sata. expireInfo = Link za vašu datoteku će isteći nakon { $downloadCount } ili { $timespan }. -downloadCount = { $num -> +downloadCount = + { $num -> [one] 1 preuzimanja [few] { $num } preuzimanja *[other] { $num } preuzimanja } -timespanHours = { $num -> +timespanHours = + { $num -> [one] 1 sat [few] { $num } sata *[other] { $num } sati diff --git a/public/locales/cak/send.ftl b/public/locales/cak/send.ftl index de35cd84..108d5eed 100644 --- a/public/locales/cak/send.ftl +++ b/public/locales/cak/send.ftl @@ -26,11 +26,13 @@ uploadSuccessConfirmHeader = Ütz chik richin Nitaq uploadSvgAlt = Tijotob'äx uploadSuccessTimingHeader = Ri ruximonel yakb'äl xtik'is ruq'ijul toq xtiqasäx jumul o pa 24 ramaj. expireInfo = Ri ruximöy ayakb'al xtik'is ruq'ijul chi rij ri { $downloadCount } o { $timespan }. -downloadCount = { $num -> +downloadCount = + { $num -> [one] 1 qasanïk *[other] { $num } taq qasanïk } -timespanHours = { $num -> +timespanHours = + { $num -> [one] 1 ramaj *[other] { $num } taq ramaj } diff --git a/public/locales/cs/send.ftl b/public/locales/cs/send.ftl index ab869ef0..b838058f 100644 --- a/public/locales/cs/send.ftl +++ b/public/locales/cs/send.ftl @@ -26,12 +26,14 @@ uploadSuccessConfirmHeader = Připraveno k odeslání uploadSvgAlt = Nahrát uploadSuccessTimingHeader = Platnost odkazu na váš soubor vyprší po jeho prvním stažení, nebo po 24 hodinách. expireInfo = Platnost odkazu na váš soubor vyprší po { $downloadCount } nebo { $timespan }. -downloadCount = { $num -> +downloadCount = + { $num -> [one] jednom stažení [few] { $num } staženích *[other] { $num } staženích } -timespanHours = { $num -> +timespanHours = + { $num -> [one] jedné hodině [few] { $num } hodinách *[other] { $num } hodinách @@ -88,8 +90,8 @@ expiryFileList = Platnost vyprší za deleteFileList = Smazat nevermindButton = Nevadí legalHeader = Podmínky a ochrana soukromí -legalNoticeTestPilot = Firefox Send je ve fázi experimentu projektu Test Pilot a platí tak pro něj stejné Podmínky používání a Zásady ochrany soukromí. Více o tomto experimentu a sbíraných datech se dozvíte zde. -legalNoticeMozilla = Používání webové služby Firefox Send se řídí Zásadami ochrany soukromí a Podmínkami používání webových stránek Mozilly. +legalNoticeTestPilot = Firefox Send je ve fázi experimentu projektu Test Pilot a platí tak pro něj stejné Podmínky používání a Zásady ochrany osobních údajů. Více o tomto experimentu a sbíraných datech se dozvíte zde. +legalNoticeMozilla = Používání webové služby Firefox Send se řídí Zásadami ochrany osobních údajů a Podmínkami používání webových stránek Mozilly. deletePopupText = Smazat tento soubor? deletePopupYes = Ano deletePopupCancel = Zrušit diff --git a/public/locales/dsb/send.ftl b/public/locales/dsb/send.ftl index c8475c84..19dd29cd 100644 --- a/public/locales/dsb/send.ftl +++ b/public/locales/dsb/send.ftl @@ -26,13 +26,15 @@ uploadSuccessConfirmHeader = Gótowy za słanje uploadSvgAlt = Nagraś uploadSuccessTimingHeader = Wótkaz k wašej dataji pó 1 ześěgnjenju abo 24 góźinach spadnjo. expireInfo = Wótkaz k wašej dataji pó { $downloadCount } abo { $timespan } spadnjo. -downloadCount = { $num -> +downloadCount = + { $num -> [one] 1 ześěgnjenje [two] { $num } ześěgnjeni [few] { $num } ześěgnjenja *[other] { $num } ześěgnjenjow } -timespanHours = { $num -> +timespanHours = + { $num -> [one] 1 góźina [two] { $num } góźinje [few] { $num } góźiny diff --git a/public/locales/el/send.ftl b/public/locales/el/send.ftl index 98ae627e..2a939968 100644 --- a/public/locales/el/send.ftl +++ b/public/locales/el/send.ftl @@ -26,11 +26,13 @@ uploadSuccessConfirmHeader = Έτοιμο για αποστολή uploadSvgAlt = Μεταφόρτωση uploadSuccessTimingHeader = Ο σύνδεσμος του αρχείου σας θα λήξει έπειτα από 1 λήψη ή 24 ώρες. expireInfo = Ο σύνδεσμος για το αρχείο σας θα λήξει μετά από { $downloadCount } ή { $timespan }. -downloadCount = { $num -> +downloadCount = + { $num -> [one] 1 λήψη *[other] { $num } λήψεις } -timespanHours = { $num -> +timespanHours = + { $num -> [one] 1 ώρα *[other] { $num } ώρες } diff --git a/public/locales/en-CA/send.ftl b/public/locales/en-CA/send.ftl new file mode 100644 index 00000000..ce9a3b46 --- /dev/null +++ b/public/locales/en-CA/send.ftl @@ -0,0 +1,121 @@ +# Firefox Send is a brand name and should not be localized. +title = Firefox Send +siteSubtitle = web experiment +siteFeedback = Feedback +uploadPageHeader = Private, Encrypted File Sharing +uploadPageExplainer = Send files through a safe, private, and encrypted link that automatically expires to ensure your stuff does not remain online forever. +uploadPageLearnMore = Learn more +uploadPageDropMessage = Drop your file here to start uploading +uploadPageSizeMessage = For the most reliable operation, it’s best to keep your file under 1GB +uploadPageBrowseButton = Select a file on your computer +uploadPageBrowseButton1 = Select a file to upload +uploadPageMultipleFilesAlert = Uploading multiple files or a folder is currently not supported. +uploadPageBrowseButtonTitle = Upload file +uploadingPageProgress = Uploading { $filename } ({ $size }) +importingFile = Importing… +verifyingFile = Verifying… +encryptingFile = Encrypting… +decryptingFile = Decrypting… +notifyUploadDone = Your upload has finished. +uploadingPageMessage = Once your file uploads you will be able to set expiry options. +uploadingPageCancel = Cancel upload +uploadCancelNotification = Your upload was cancelled. +uploadingPageLargeFileMessage = This file is large and may take a while to upload. Sit tight! +uploadingFileNotification = Notify me when the upload is complete. +uploadSuccessConfirmHeader = Ready to Send +uploadSvgAlt = Upload +uploadSuccessTimingHeader = The link to your file will expire after 1 download or in 24 hours. +expireInfo = The link to your file will expire after { $downloadCount } or { $timespan }. +downloadCount = + { $num -> + [one] 1 download + *[other] { $num } downloads + } +timespanHours = + { $num -> + [one] 1 hour + *[other] { $num } hours + } +copyUrlFormLabelWithName = Copy and share the link to send your file: { $filename } +copyUrlFormButton = Copy to clipboard +copiedUrl = Copied! +deleteFileButton = Delete file +sendAnotherFileLink = Send another file +# Alternative text used on the download link/button (indicates an action). +downloadAltText = Download +downloadsFileList = Downloads +# Used as header in a column indicating the amount of time left before a +# download link expires (e.g. "10h 5m") +timeFileList = Time +# Used as header in a column indicating the number of times a file has been +# downloaded +downloadFileName = Download { $filename } +downloadFileSize = ({ $size }) +unlockInputLabel = Enter Password +unlockInputPlaceholder = Password +unlockButtonLabel = Unlock +downloadFileTitle = Download Encrypted File +# Firefox Send is a brand name and should not be localized. +downloadMessage = Your friend is sending you a file with Firefox Send, a service that allows you to share files with a safe, private, and encrypted link that automatically expires to ensure your stuff does not remain online forever. +# Text and title used on the download link/button (indicates an action). +downloadButtonLabel = Download +downloadNotification = Your download has completed. +downloadFinish = Download Complete +# This message is displayed when uploading or downloading a file, e.g. "(1,3 MB of 10 MB)". +fileSizeProgress = ({ $partialSize } of { $totalSize }) +# Firefox Send is a brand name and should not be localized. +sendYourFilesLink = Try Firefox Send +downloadingPageProgress = Downloading { $filename } ({ $size }) +downloadingPageMessage = Please leave this tab open while we fetch your file and decrypt it. +errorAltText = Upload error +errorPageHeader = Something went wrong! +errorPageMessage = There has been an error uploading the file. +errorPageLink = Send another file +fileTooBig = That file is too big to upload. It should be less than { $size }. +linkExpiredAlt = Link expired +expiredPageHeader = This link has expired or never existed in the first place! +notSupportedHeader = Your browser is not supported. +# Firefox Send is a brand name and should not be localized. +notSupportedDetail = Unfortunately this browser does not support the web technology that powers Firefox Send. You’ll need to try another browser. We recommend Firefox! +notSupportedLink = Why is my browser not supported? +notSupportedOutdatedDetail = Unfortunately this version of Firefox does not support the web technology that powers Firefox Send. You’ll need to update your browser. +updateFirefox = Update Firefox +downloadFirefoxButtonSub = Free Download +uploadedFile = File +copyFileList = Copy URL +# expiryFileList is used as a column header +expiryFileList = Expires In +deleteFileList = Delete +nevermindButton = Never mind +legalHeader = Terms & Privacy +legalNoticeTestPilot = Firefox Send is currently a Test Pilot experiment, and subject to the Test Pilot Terms of Service and Privacy Notice. You can learn more about this experiment and its data collection here. +legalNoticeMozilla = Use of the Firefox Send website is also subject to Mozilla’s Websites Privacy Notice and Websites Terms of Use. +deletePopupText = Delete this file? +deletePopupYes = Yes +deletePopupCancel = Cancel +deleteButtonHover = Delete +copyUrlHover = Copy URL +footerLinkLegal = Legal +# Test Pilot is a proper name and should not be localized. +footerLinkAbout = About Test Pilot +footerLinkPrivacy = Privacy +footerLinkTerms = Terms +footerLinkCookies = Cookies +requirePasswordCheckbox = Require a password to download this file +addPasswordButton = Add password +changePasswordButton = Change +passwordTryAgain = Incorrect password. Try again. +reportIPInfringement = Report IP Infringement +javascriptRequired = Firefox Send requires JavaScript +whyJavascript = Why does Firefox Send require JavaScript? +enableJavascript = Please enable JavaScript and try again. +# A short representation of a countdown timer containing the number of hours and minutes remaining as digits, example "13h 47m" +expiresHoursMinutes = { $hours }h { $minutes }m +# A short representation of a countdown timer containing the number of minutes remaining as digits, example "56m" +expiresMinutes = { $minutes }m +# A short status message shown when a password is successfully set +passwordIsSet = Password set +# A short status message shown when the user enters a long password +maxPasswordLength = Maximum password length: { $length } +# A short status message shown when there was an error setting the password +passwordSetError = This password could not be set diff --git a/public/locales/es-AR/send.ftl b/public/locales/es-AR/send.ftl index fcb4c401..c7fab7ea 100644 --- a/public/locales/es-AR/send.ftl +++ b/public/locales/es-AR/send.ftl @@ -26,11 +26,13 @@ uploadSuccessConfirmHeader = Listo para enviar uploadSvgAlt = Subir uploadSuccessTimingHeader = El enlace al archivo expirará después de 1 descarga o en 24 horas. expireInfo = El enlace a tu archivo expirará después de { $downloadCount } o { $timespan }. -downloadCount = { $num -> +downloadCount = + { $num -> [one] 1 descarga *[other] { $num } descargas } -timespanHours = { $num -> +timespanHours = + { $num -> [one] 1 hora *[other] { $num } horas } diff --git a/public/locales/es-CL/send.ftl b/public/locales/es-CL/send.ftl index c21feef3..7080f209 100644 --- a/public/locales/es-CL/send.ftl +++ b/public/locales/es-CL/send.ftl @@ -26,11 +26,13 @@ uploadSuccessConfirmHeader = Listo para enviar uploadSvgAlt = Subir uploadSuccessTimingHeader = El enlace a tu archivo expirará tras 1 descarga o en 24 horas. expireInfo = El enlace a tu archivo expirará después de { $downloadCount } o { $timespan }. -downloadCount = { $num -> +downloadCount = + { $num -> [one] 1 descarga *[other] { $num } descargas } -timespanHours = { $num -> +timespanHours = + { $num -> [one] 1 hora *[other] { $num } horas } diff --git a/public/locales/es-ES/send.ftl b/public/locales/es-ES/send.ftl index 6f956372..bf289015 100644 --- a/public/locales/es-ES/send.ftl +++ b/public/locales/es-ES/send.ftl @@ -12,7 +12,7 @@ uploadPageBrowseButton1 = Seleccionar un archivo para subir uploadPageMultipleFilesAlert = Aún no se pueden subir varios archivos o una carpeta. uploadPageBrowseButtonTitle = Subir archivo uploadingPageProgress = Subiendo { $filename } ({ $size }) -importingFile = Imporando... +importingFile = Importando... verifyingFile = Comprobando... encryptingFile = Encriptando... decryptingFile = Desencriptando... @@ -26,11 +26,13 @@ uploadSuccessConfirmHeader = Listo para enviar uploadSvgAlt = Subir uploadSuccessTimingHeader = El enlace al archivo caducará tras descargarlo una vez o en 24 horas. expireInfo = El enlace al archivo expirará tras { $downloadCount } o { $timespan }. -downloadCount = { $num -> +downloadCount = + { $num -> [one] 1 descarga *[other] { $num } descargas } -timespanHours = { $num -> +timespanHours = + { $num -> [one] 1 hora *[other] { $num } horas } @@ -86,7 +88,7 @@ expiryFileList = Caduca en deleteFileList = Eliminar nevermindButton = Da igual legalHeader = Términos y privacidad -legalNoticeTestPilot = Firefox Send sigue siendo un experimento de Test Pilot y está sujero a las Condiciones del servicio y al Aviso de privacidad de Test Pilot. +legalNoticeTestPilot = Firefox Send sigue siendo un experimento de Test Pilot y está sujero a las Condiciones del servicio y al Aviso de privacidad de Test Pilot. Aquí podrás descubrir más sobre este experimento y su recopilación de datos. legalNoticeMozilla = El uso de la página de Firefox Send también está sujeto al Aviso de privacidad sobre sitios web y a los Términos de uso sobre sitios web. deletePopupText = ¿Eliminar el archivo? deletePopupYes = Sí diff --git a/public/locales/et/send.ftl b/public/locales/et/send.ftl index 2b4f2b13..cffe4f8d 100644 --- a/public/locales/et/send.ftl +++ b/public/locales/et/send.ftl @@ -26,11 +26,13 @@ uploadSuccessConfirmHeader = Saatmiseks valmis uploadSvgAlt = Laadi üles uploadSuccessTimingHeader = Link failile aegub pärast 1. allalaadimist või 24 tunni möödumisel. expireInfo = Link failile aegub peale { $downloadCount } või { $timespan }. -downloadCount = { $num -> +downloadCount = + { $num -> [one] üht allalaadimist *[other] { $num } allalaadimist } -timespanHours = { $num -> +timespanHours = + { $num -> [one] üht tundi *[other] { $num } tundi } diff --git a/public/locales/fa/send.ftl b/public/locales/fa/send.ftl index b2dfbf82..38669dff 100644 --- a/public/locales/fa/send.ftl +++ b/public/locales/fa/send.ftl @@ -26,6 +26,16 @@ uploadSuccessConfirmHeader = آماده برای ارسال uploadSvgAlt = بارگذاری uploadSuccessTimingHeader = پیوند به پرونده شما بعد از ۱ بار دانلود یا ۲۴ ساعت حذف خواهد شد. expireInfo = این پیوند به فایل شما پس از { $downloadCount } یا { $timespan } منقضی خواهد شد. +downloadCount = + { $num -> + [one] ۱ بارگیری + *[other] { $num } بارگیری + } +timespanHours = + { $num -> + [one] ۱ ساعت + *[other] { $num } ساعت + } copyUrlFormLabelWithName = برای ارسال پرونده پیوند آن را رونوشت و به اشتراک بگذارید: { $filename } copyUrlFormButton = رونوشت به کلیپ‌بورد copiedUrl = رونوشت شد! diff --git a/public/locales/fy-NL/send.ftl b/public/locales/fy-NL/send.ftl index d1d5715e..8571bf32 100644 --- a/public/locales/fy-NL/send.ftl +++ b/public/locales/fy-NL/send.ftl @@ -26,11 +26,13 @@ uploadSuccessConfirmHeader = Ree om te ferstjoeren uploadSvgAlt = Oplaad uploadSuccessTimingHeader = De keppeling nei jo bestân sil nei 1 download ferrinne of nei 24 oeren. expireInfo = De keppeling nei jo bestân sil nei { $downloadCount } of { $timespan } ferrinne. -downloadCount = { $num -> +downloadCount = + { $num -> [one] 1 download *[other] { $num } downloads } -timespanHours = { $num -> +timespanHours = + { $num -> [one] 1 oer *[other] { $num } oeren } diff --git a/public/locales/he/send.ftl b/public/locales/he/send.ftl index ffecb54f..433627cd 100644 --- a/public/locales/he/send.ftl +++ b/public/locales/he/send.ftl @@ -1,4 +1,4 @@ -// Firefox Send is a brand name and should not be localized. +# Firefox Send is a brand name and should not be localized. title = Firefox Send siteSubtitle = ניסוי אינטרנט siteFeedback = משוב @@ -21,7 +21,7 @@ uploadCancelNotification = ההעלאה שלך בוטלה. uploadingPageLargeFileMessage = קובץ זה גדול ועלול לקחת זמן להעלות אותו. סבלנות! uploadingFileNotification = נא להודיע לי כשתסתיים ההעלאה. uploadSuccessConfirmHeader = מוכן לשליחה -uploadSvgAlt +uploadSvgAlt = .alt = להעלות uploadSuccessTimingHeader = הקישור לקובץ שלך יפוג אחרי הורדה אחת או בעוד 24 שעות. copyUrlFormLabelWithName = ניתן להעתיק ולשתף את הקישור כדי לשלוח את הקובץ שלך: { $filename } @@ -30,32 +30,34 @@ deleteFileButton = מחיקת קובץ .title = מחיקת קובץ sendAnotherFileLink = שליחת קובץ נוסף .title = שליחת קובץ נוסף -// Alternative text used on the download link/button (indicates an action). -downloadAltText +# Alternative text used on the download link/button (indicates an action). +downloadAltText = .alt = הורדה +# Used as header in a column indicating the number of times a file has been +# downloaded downloadFileName = ההורדה נכשלה downloadFileSize = ({ $size }) -// Text and title used on the download link/button (indicates an action). +# Text and title used on the download link/button (indicates an action). downloadButtonLabel = הורדה .title = הורדה downloadNotification = ההורדה הושלמה. downloadFinish = ההורדה הושלמה -// This message is displayed when uploading or downloading a file, e.g. "(1,3 MB of 10 MB)". +# This message is displayed when uploading or downloading a file, e.g. "(1,3 MB of 10 MB)". fileSizeProgress = ({ $partialSize } מתוך { $totalSize }) downloadingPageProgress = בהורדה: { $filename } ({ $size }) -errorAltText +errorAltText = .alt = תקלה בהעלאה errorPageHeader = משהו השתבש! errorPageLink = שליחת קובץ נוסף fileTooBig = הקובץ הזה גדול מידי להעלאה. עליו להיות קטן מ־{ $size }. -linkExpiredAlt +linkExpiredAlt = .alt = קישור פג notSupportedHeader = הדפדפן שלך לא נתמך. notSupportedLink = למה אין תמיכה בדפדפן שלי? downloadFirefoxButtonSub = הורדה בחינם uploadedFile = קובץ copyFileList = העתקת כתובת -// expiryFileList is used as a column header +# expiryFileList is used as a column header expiryFileList = יפוג בעוד deleteFileList = מחיקה nevermindButton = לא משנה @@ -63,9 +65,9 @@ legalHeader = תנאי שירות ופרטיות deletePopupText = למחוק דף זה? deletePopupYes = כן deletePopupCancel = ביטול -deleteButtonHover +deleteButtonHover = .title = מחיקה -copyUrlHover +copyUrlHover = .title = העתקת קישור footerLinkLegal = מידע משפטי footerLinkPrivacy = פרטיות diff --git a/public/locales/hsb/send.ftl b/public/locales/hsb/send.ftl index 125cafca..f053aa7e 100644 --- a/public/locales/hsb/send.ftl +++ b/public/locales/hsb/send.ftl @@ -26,13 +26,15 @@ uploadSuccessConfirmHeader = Hotowy za słanje uploadSvgAlt = Nahrać uploadSuccessTimingHeader = Wotkaz k wašej dataji po 1 sćehnjenju abo 24 hodźinach spadnje. expireInfo = Wotkaz k wašej dataji po { $downloadCount } abo { $timespan } spadnje. -downloadCount = { $num -> +downloadCount = + { $num -> [one] 1 sćehnjenje [two] { $num } sćehnjeni [few] { $num } sćehnjenja *[other] { $num } sćehnjenjow } -timespanHours = { $num -> +timespanHours = + { $num -> [one] 1 hodźina [two] { $num } hodźinje [few] { $num } hodźiny diff --git a/public/locales/hu/send.ftl b/public/locales/hu/send.ftl index 86a1183b..b4034baa 100644 --- a/public/locales/hu/send.ftl +++ b/public/locales/hu/send.ftl @@ -26,11 +26,13 @@ uploadSuccessConfirmHeader = Küldésre kész uploadSvgAlt = Feltöltés uploadSuccessTimingHeader = A fájl hivatkozása lejár 1 letöltés vagy 24 óra múlva. expireInfo = A fájlhoz tartozó hivatkozás { $downloadCount } vagy { $timespan } múlva lejár. -downloadCount = { $num -> +downloadCount = + { $num -> [one] 1 letöltés *[other] { $num } letöltés } -timespanHours = { $num -> +timespanHours = + { $num -> [one] 1 óra *[other] { $num } óra } diff --git a/public/locales/ia/send.ftl b/public/locales/ia/send.ftl index 7da612fe..6feab6ba 100644 --- a/public/locales/ia/send.ftl +++ b/public/locales/ia/send.ftl @@ -26,11 +26,13 @@ uploadSuccessConfirmHeader = Preste a inviar uploadSvgAlt = Cargamento uploadSuccessTimingHeader = Le ligamine a tu file expirara post un discargamento o in 24 horas. expireInfo = Le ligamine a tu file expirara post { $downloadCount } o { $timespan } -downloadCount = { $num -> +downloadCount = + { $num -> [one] discargamento *[other] discargamentos } -timespanHours = { $num -> +timespanHours = + { $num -> [one] hora *[other] horas } diff --git a/public/locales/id/send.ftl b/public/locales/id/send.ftl index 71ddb179..01323e01 100644 --- a/public/locales/id/send.ftl +++ b/public/locales/id/send.ftl @@ -112,5 +112,9 @@ enableJavascript = Silakan aktifkan JavaScript dan coba lagi. expiresHoursMinutes = { $hours }j { $minutes }m # A short representation of a countdown timer containing the number of minutes remaining as digits, example "56m" expiresMinutes = { $minutes }m +# A short status message shown when a password is successfully set +passwordIsSet = Sandi diatur # A short status message shown when the user enters a long password maxPasswordLength = Panjang sandi maksimal: { $length } +# A short status message shown when there was an error setting the password +passwordSetError = Tidak bisa menyetel sandi ini diff --git a/public/locales/it/send.ftl b/public/locales/it/send.ftl index 82567e74..e0097cee 100644 --- a/public/locales/it/send.ftl +++ b/public/locales/it/send.ftl @@ -26,11 +26,13 @@ uploadSuccessConfirmHeader = Pronto per l’invio uploadSvgAlt = Carica uploadSuccessTimingHeader = Il link al file scadrà dopo 1 download o in 24 ore. expireInfo = Il link a questo file scadrà dopo { $downloadCount } o { $timespan }. -downloadCount = { $num -> +downloadCount = + { $num -> [one] 1 download *[other] { $num } download } -timespanHours = { $num -> +timespanHours = + { $num -> [one] 1 ora *[other] { $num } ore } diff --git a/public/locales/ja/send.ftl b/public/locales/ja/send.ftl index f800b4df..1a751c08 100644 --- a/public/locales/ja/send.ftl +++ b/public/locales/ja/send.ftl @@ -26,10 +26,12 @@ uploadSuccessConfirmHeader = 送信準備完了 uploadSvgAlt = アップロード uploadSuccessTimingHeader = ファイルへのリンクは、1 回ダウンロードされた後、もしくは 24 時間以内に期限切れとなります。 expireInfo = このファイルへのリンクは { $downloadCount } あるいは { $timespan } 後に期限切れとなります。 -downloadCount = { $num -> +downloadCount = + { $num -> *[other] { $num } 回のダウンロード } -timespanHours = { $num -> +timespanHours = + { $num -> *[other] { $num } 時間 } copyUrlFormLabelWithName = ファイルを送信するにはこのリンクをコピー、共有してください: { $filename } diff --git a/public/locales/kab/send.ftl b/public/locales/kab/send.ftl index e75ed73c..d6bbc8c2 100644 --- a/public/locales/kab/send.ftl +++ b/public/locales/kab/send.ftl @@ -26,11 +26,13 @@ uploadSuccessConfirmHeader = Ihegga i walluy uploadSvgAlt = Sali uploadSuccessTimingHeader = Aseɣwen ar ufaylu-ik ad yemmet ticki yuder-d neɣ deffir n 24 n yisragen. expireInfo = Aseɣwen icudden ar ufaylu-inek ad yemmet send { $downloadCount } naɣ { $timespan }. -downloadCount = { $num -> +downloadCount = + { $num -> [one] 1 usider *[other] { $num } isidar } -timespanHours = { $num -> +timespanHours = + { $num -> [one] 1 usrag *[other] { $num } isragen } diff --git a/public/locales/ko/send.ftl b/public/locales/ko/send.ftl index 7242b854..87a7b42f 100644 --- a/public/locales/ko/send.ftl +++ b/public/locales/ko/send.ftl @@ -18,7 +18,7 @@ verifyingFile = 확인하는 중… encryptingFile = 암호화 중… decryptingFile = 복호화 중… notifyUploadDone = 업로드가 완료되었습니다. -uploadingPageMessage = 파일이 업로드 되고나서 만료 옵션을 설정할 수 있습니다. +uploadingPageMessage = 파일이 업로드 되고 나서 만료 옵션을 설정할 수 있습니다. uploadingPageCancel = 업로드 취소 uploadCancelNotification = 업로드가 취소되었습니다. uploadingPageLargeFileMessage = 이 파일은 크기가 커서 시간이 다소 걸릴 수 있습니다. 잠시만 기다려주세요! diff --git a/public/locales/ms/send.ftl b/public/locales/ms/send.ftl index f7e9a625..ba1d445a 100644 --- a/public/locales/ms/send.ftl +++ b/public/locales/ms/send.ftl @@ -26,10 +26,12 @@ uploadSuccessConfirmHeader = Sedia untuk Hantar uploadSvgAlt = Muat naik uploadSuccessTimingHeader = Pautan ke fail anda akan luput selepas 1 muat turun atau dalam 24 jam. expireInfo = Pautan ke fail anda akan luput selepas { $downloadCount } atau { $timespan }. -downloadCount = { $num -> +downloadCount = + { $num -> *[other] { $num } muat turun } -timespanHours = { $num -> +timespanHours = + { $num -> *[other] { $num } jam } copyUrlFormLabelWithName = Salin dan kongsi pautan untuk menghantar fail anda: { $filename } diff --git a/public/locales/nb-NO/send.ftl b/public/locales/nb-NO/send.ftl index ff57b218..5c922211 100644 --- a/public/locales/nb-NO/send.ftl +++ b/public/locales/nb-NO/send.ftl @@ -26,11 +26,13 @@ uploadSuccessConfirmHeader = Klar til å sende uploadSvgAlt = Last opp uploadSuccessTimingHeader = Lenken til filen din utløper etter 1 nedlasting eller om 24 timer. expireInfo = Lenken til filen din vil gå ut etter { $downloadCount } eller { $timespan }. -downloadCount = { $num -> +downloadCount = + { $num -> [one] 1 nedlasting *[other] { $num } nedlastinger } -timespanHours = { $num -> +timespanHours = + { $num -> [one] 1 time *[other] { $num } timer } diff --git a/public/locales/nl/send.ftl b/public/locales/nl/send.ftl index 5544f8f6..7a0716a9 100644 --- a/public/locales/nl/send.ftl +++ b/public/locales/nl/send.ftl @@ -26,11 +26,13 @@ uploadSuccessConfirmHeader = Gereed voor verzending uploadSvgAlt = Uploaden uploadSuccessTimingHeader = De koppeling naar uw bestand zal na 1 download of 24 uur verlopen. expireInfo = De koppeling naar uw bestand zal na { $downloadCount } of { $timespan } verlopen. -downloadCount = { $num -> +downloadCount = + { $num -> [one] 1 download *[other] { $num } downloads } -timespanHours = { $num -> +timespanHours = + { $num -> [one] 1 uur *[other] { $num } uur } diff --git a/public/locales/nn-NO/send.ftl b/public/locales/nn-NO/send.ftl index 46ed9ca7..5b76e68e 100644 --- a/public/locales/nn-NO/send.ftl +++ b/public/locales/nn-NO/send.ftl @@ -26,11 +26,13 @@ uploadSuccessConfirmHeader = Klår til å senda uploadSvgAlt = Last opp uploadSuccessTimingHeader = Lenka til fila di går ut etter 1 nedlasting eller om 24 timar. expireInfo = Lenka til fila di vil gå ut etter { $downloadCount } eller { $timespan }. -downloadCount = { $num -> +downloadCount = + { $num -> [one] 1 nedlasting *[other] { $num } nedlastingar } -timespanHours = { $num -> +timespanHours = + { $num -> [one] 1 time *[other] { $num } timar } diff --git a/public/locales/pt-BR/send.ftl b/public/locales/pt-BR/send.ftl index b6806a92..5def8eeb 100644 --- a/public/locales/pt-BR/send.ftl +++ b/public/locales/pt-BR/send.ftl @@ -26,11 +26,13 @@ uploadSuccessConfirmHeader = Pronto para enviar uploadSvgAlt = Enviado uploadSuccessTimingHeader = O link para o seu arquivo expirará após 1 download ou em 24 horas. expireInfo = O link para o seu arquivo expirará após { $downloadCount } ou { $timepan }. -downloadCount = { $num -> +downloadCount = + { $num -> [one] 1 download *[other] { $num } downloads } -timespanHours = { $num -> +timespanHours = + { $num -> [one] 1 hora *[other] { $num } horas } diff --git a/public/locales/sk/send.ftl b/public/locales/sk/send.ftl index fe2c44dc..6c6f4e79 100644 --- a/public/locales/sk/send.ftl +++ b/public/locales/sk/send.ftl @@ -26,12 +26,14 @@ uploadSuccessConfirmHeader = Pripravené na odoslanie uploadSvgAlt = Nahrať uploadSuccessTimingHeader = Platnosť odkazu vyprší po 1 prevzatí alebo po uplynutí 24 hodín. expireInfo = Platnosť odkazu na váš súbor vyprší po { $downloadCount } alebo po { $timespan }. -downloadCount = { $num -> +downloadCount = + { $num -> [one] 1 prevzatí [few] { $num } prevzatiach *[other] { $num } prevzatiach } -timespanHours = { $num -> +timespanHours = + { $num -> [one] 1 hodine [few] { $num } hodinách *[other] { $num } hodinách diff --git a/public/locales/sl/send.ftl b/public/locales/sl/send.ftl index dc322f76..bdadb7d4 100644 --- a/public/locales/sl/send.ftl +++ b/public/locales/sl/send.ftl @@ -26,13 +26,15 @@ uploadSuccessConfirmHeader = Pripravljeno za pošiljanje uploadSvgAlt = Naloži uploadSuccessTimingHeader = Povezava do vaše datoteke bo potekla po enem prenosu ali v 24 urah. expireInfo = Povezava do vaše datoteke bo potekla čez { $downloadCount } ali { $timespan }. -downloadCount = { $num -> +downloadCount = + { $num -> [one] 1 prenos [two] { $num } prenosa [few] { $num } prenosi *[other] { $num } prenosov } -timespanHours = { $num -> +timespanHours = + { $num -> [one] 1 ura [two] { $num } uri [few] { $num } ure diff --git a/public/locales/sq/send.ftl b/public/locales/sq/send.ftl index aa7a8f22..afe29381 100644 --- a/public/locales/sq/send.ftl +++ b/public/locales/sq/send.ftl @@ -26,11 +26,13 @@ uploadSuccessConfirmHeader = Gati për Dërgim uploadSvgAlt = Ngarkoje uploadSuccessTimingHeader = Lidhja për te kartela juaj do të skadojë pas 1 shkarkimi ose pas 24 orësh. expireInfo = Lidhja për te kartela juaj do të skadojë pas { $downloadCount } ose { $timespan }. -downloadCount = { $num -> +downloadCount = + { $num -> [one] 1 shkarkimi *[other] { $num } shkarkimesh } -timespanHours = { $num -> +timespanHours = + { $num -> [one] 1 ore *[other] { $num } orësh } diff --git a/public/locales/sr/send.ftl b/public/locales/sr/send.ftl index 57dfd4ec..816b0ab4 100644 --- a/public/locales/sr/send.ftl +++ b/public/locales/sr/send.ftl @@ -26,12 +26,14 @@ uploadSuccessConfirmHeader = Спреман за слање uploadSvgAlt = Отпреми uploadSuccessTimingHeader = Веза ка вашој датотеци ће истећи након једног преузимања или након 24 сата. expireInfo = Веза ка вашој датотеци ће истећи након { $downloadCount } или { $timespan }. -downloadCount = { $num -> +downloadCount = + { $num -> [one] преузимања [few] преузимања *[other] преузимања } -timespanHours = { $num -> +timespanHours = + { $num -> [one] сата [few] сата *[other] сати diff --git a/public/locales/sv-SE/send.ftl b/public/locales/sv-SE/send.ftl index 5d330593..b1992148 100644 --- a/public/locales/sv-SE/send.ftl +++ b/public/locales/sv-SE/send.ftl @@ -26,11 +26,13 @@ uploadSuccessConfirmHeader = Klar för att skicka uploadSvgAlt = Ladda upp uploadSuccessTimingHeader = Länken till din fil upphör att gälla efter 1 nedladdning eller om 24 timmar. expireInfo = Länken till din fil upphör att gälla efter { $downloadCount } eller { $timespan }. -downloadCount = { $num -> +downloadCount = + { $num -> [one] 1 nedladdning *[other] { $num } nedladdningar } -timespanHours = { $num -> +timespanHours = + { $num -> [one] 1 timme *[other] { $num } timmar } diff --git a/public/locales/te/send.ftl b/public/locales/te/send.ftl index 2b7736cc..acbc3923 100644 --- a/public/locales/te/send.ftl +++ b/public/locales/te/send.ftl @@ -7,6 +7,7 @@ uploadPageDropMessage = ఎగుమతిని ప్రారంభించ uploadPageSizeMessage = అత్యంత నమ్మకమైన కార్యం కోసం, మీ ఫైలును 1GB కంటే తక్కువగా ఉంచడం ఉత్తమం uploadPageBrowseButton = మీ కంప్యూటర్లో ఒక ఫైలును ఎంచుకోండి uploadPageBrowseButton1 = ఎక్కించటానికి ఒక ఫైలును ఎంచుకోండి +uploadPageMultipleFilesAlert = పలు ఫైళ్ళను లేదా సంయచాన్ని ఎక్కించడానికి ప్రస్తుతం తోడ్పాటు లేదు. uploadPageBrowseButtonTitle = ఫైలును ఎగుమతి చేయండి uploadingPageProgress = { $filename } ({ $size }) ఎక్కుతోంది importingFile = దిగుమతవుతోంది... @@ -64,6 +65,7 @@ errorAltText = ఎగుమతిలో లోపం errorPageHeader = ఏదో తప్పిదం జరిగింది! errorPageMessage = ఫైల్ను ఎగుమతి చేయడంలో లోపం ఉంది. errorPageLink = మరో ఫైలును పంపండి +fileTooBig = ఆ ఫైలు ఎక్కించడానికి చాలా పెద్దగా ఉంది. ఫైళ్ళు { $size } కంటే తక్కువ పరిమాణంలో ఉండాలి. linkExpiredAlt = లంకె గడువు ముగిసింది expiredPageHeader = ఈ లంకె గడువు ముగిసింది లేదా ముందు ఎప్పుడూ ఉనికిలో లేదు! notSupportedHeader = మీ విహారిణికి మద్దతు లేదు. diff --git a/public/locales/tl/send.ftl b/public/locales/tl/send.ftl index e9c90a50..6e674df4 100644 --- a/public/locales/tl/send.ftl +++ b/public/locales/tl/send.ftl @@ -26,11 +26,13 @@ uploadSuccessConfirmHeader = Handa nang Ipadala uploadSvgAlt = I-upload uploadSuccessTimingHeader = Mag-e-expire ang link sa iyong file pagkatapos ng 1 pag-download o sa loob ng 24 na oras. expireInfo = Mag-e-expire ang link sa iyong file pagkatapos ng { $downloadCount } o { $timespan }. -downloadCount = { $num -> +downloadCount = + { $num -> [one] 1 pag-download *[other] { $num } na mga pag-download } -timespanHours = { $num -> +timespanHours = + { $num -> *[one] 1 oras } copyUrlFormLabelWithName = Kopyahin at ibahagi ang link upang ipadala ang iyong file: { $filename } diff --git a/public/locales/tr/send.ftl b/public/locales/tr/send.ftl index 66a8b789..437edc2f 100644 --- a/public/locales/tr/send.ftl +++ b/public/locales/tr/send.ftl @@ -84,7 +84,7 @@ expiryFileList = Bitiş süresi deleteFileList = Sil nevermindButton = Boş ver legalHeader = Şart ve Koşullar -legalNoticeTestPilot = Firefox Send bir Test Pilotu deneyidir ve Test Pilotu Hizmet Koşulları ile Gizlilik Bildirimi’ne tabidir. Bu deney ve topladığı veriler hakkında daha fazla bilgi almak isterseniz buraya bakabilirsiniz. +legalNoticeTestPilot = Firefox Send bir Test Pilotu deneyidir ve Test Pilotu Hizmet Koşulları ile Gizlilik Bildirimi’ne tabidir. Bu deney ve topladığı veriler hakkında daha fazla bilgi almak isterseniz buraya bakabilirsiniz. legalNoticeMozilla = Firefox Send’i kullanmak Mozilla’nın Web Siteleri Gizlilik Bildirimi ve Web Siteleri Kullanım Koşulları’na da tabidir. deletePopupText = Bu dosya silinsin mi? deletePopupYes = Evet diff --git a/public/locales/uk/send.ftl b/public/locales/uk/send.ftl index 86fd7599..48bf6552 100644 --- a/public/locales/uk/send.ftl +++ b/public/locales/uk/send.ftl @@ -26,12 +26,14 @@ uploadSuccessConfirmHeader = Готовий до надсилання uploadSvgAlt = Вивантажити uploadSuccessTimingHeader = Час дії цього посилання закінчиться після 1 завантаження, або через 24 години. expireInfo = Посилання на ваш файл стане недійсним після { $downloadCount } файла, або через { $timespan }. -downloadCount = { $num -> +downloadCount = + { $num -> [one] 1 завантаження [few] { $num } завантаження *[other] { $num } завантажень } -timespanHours = { $num -> +timespanHours = + { $num -> [one] 1 година [few] { $num } години *[other] { $num } годин diff --git a/public/locales/zh-CN/send.ftl b/public/locales/zh-CN/send.ftl index 60d7f25f..831714c5 100644 --- a/public/locales/zh-CN/send.ftl +++ b/public/locales/zh-CN/send.ftl @@ -26,10 +26,12 @@ uploadSuccessConfirmHeader = 准备好发送 uploadSvgAlt = 上传 uploadSuccessTimingHeader = 您的文件的链接将在首次下载或 24 小时后过期。 expireInfo = 指向该文件的链接将在 { $downloadCount } 或 { $timespan } 后过期。 -downloadCount = { $num -> +downloadCount = + { $num -> *[other] { $num } 次下载 } -timespanHours = { $num -> +timespanHours = + { $num -> *[other] { $num } 小时 } copyUrlFormLabelWithName = 复制并分享链接以发送您的文件:{ $filename } diff --git a/public/locales/zh-TW/send.ftl b/public/locales/zh-TW/send.ftl index b441ad31..f5fa7890 100644 --- a/public/locales/zh-TW/send.ftl +++ b/public/locales/zh-TW/send.ftl @@ -26,10 +26,12 @@ uploadSuccessConfirmHeader = 準備好傳送 uploadSvgAlt = 上傳 uploadSuccessTimingHeader = 您的檔案鏈結將會在首次下載,或 24 小時後失效。 expireInfo = 檔案鏈結將在 { $downloadCount }或 { $timespan }後失效。 -downloadCount = { $num -> +downloadCount = + { $num -> *[other] { $num } 次下載 } -timespanHours = { $num -> +timespanHours = + { $num -> *[other] { $num } 小時 } copyUrlFormLabelWithName = 複製並分享鏈結來傳送您的檔案: { $filename } diff --git a/server/routes/download.js b/server/routes/download.js index bfd667ed..84ba715d 100644 --- a/server/routes/download.js +++ b/server/routes/download.js @@ -14,8 +14,17 @@ module.exports = async function(req, res) { 'WWW-Authenticate': `send-v1 ${req.nonce}` }); const file_stream = storage.get(id); + let cancelled = false; - file_stream.on('end', async () => { + req.on('close', () => { + cancelled = true; + file_stream.destroy(); + }); + + file_stream.on('close', async () => { + if (cancelled) { + return; + } const dl = meta.dl + 1; const dlimit = meta.dlimit; try { @@ -28,6 +37,7 @@ module.exports = async function(req, res) { log.info('StorageError:', id); } }); + file_stream.pipe(res); } catch (e) { res.sendStatus(404); diff --git a/test/frontend/tests/workflow-tests.js b/test/frontend/tests/workflow-tests.js index eed956da..ff8b83c7 100644 --- a/test/frontend/tests/workflow-tests.js +++ b/test/frontend/tests/workflow-tests.js @@ -134,6 +134,27 @@ describe('Upload / Download flow', function() { } }); + it('can cancel and not increase download count', async function() { + const fs = new FileSender(blob); + const file = await fs.upload(); + const fr = new FileReceiver({ + secretKey: file.toJSON().secretKey, + id: file.id, + nonce: file.keychain.nonce, + requiresPassword: false + }); + await fr.getMetadata(); + fr.once('progress', () => fr.cancel()); + + try { + await fr.download(noSave); + assert.fail('not cancelled'); + } catch (e) { + await file.updateDownloadCount(); + assert.equal(file.dtotal, 0); + } + }); + it('can allow multiple downloads', async function() { const fs = new FileSender(blob); const file = await fs.upload(); diff --git a/test/integration/requirements.txt b/test/integration/requirements.txt index f93b1efb..0b089ab2 100644 --- a/test/integration/requirements.txt +++ b/test/integration/requirements.txt @@ -1,8 +1,8 @@ -selenium==3.12.0 +selenium==3.13.0 flake8==3.5.0 flake8-isort==2.5 PyPOM==2.0.0 -pytest==3.6.0 -pytest-html==1.18.0 +pytest==3.6.3 +pytest-html==1.19.0 pytest-selenium==1.13.0 pytest-xdist==1.22.2