Merge branch 'master' into translate

This commit is contained in:
schlagmichdoch 2025-02-11 11:11:59 +01:00
commit 25f2bc2285
12 changed files with 32 additions and 42 deletions

View file

@ -36,7 +36,7 @@ If applicable, add screenshots to help explain your problem.
**Bug occurs on official PairDrop instance https://pairdrop.net/** **Bug occurs on official PairDrop instance https://pairdrop.net/**
No | Yes No | Yes
Version: v1.10.9 Version: v1.10.10
**Bug occurs on self-hosted PairDrop instance** **Bug occurs on self-hosted PairDrop instance**
No | Yes No | Yes
@ -44,7 +44,7 @@ No | Yes
**Self-Hosted Setup** **Self-Hosted Setup**
Proxy: Nginx | Apache2 Proxy: Nginx | Apache2
Deployment: docker run | docker compose | npm run start:prod Deployment: docker run | docker compose | npm run start:prod
Version: v1.10.9 Version: v1.10.10
**Additional context** **Additional context**
Add any other context about the problem here. Add any other context about the problem here.

View file

@ -7,13 +7,18 @@
<p> <p>
Local file sharing <a href="https://pairdrop.net"><strong>in your web browser</strong></a>. Local file sharing <a href="https://pairdrop.net"><strong>in your web browser</strong></a>.
<br /> <br>
<br /> Inspired by Apple's AirDrop.
<br>
Fork of Snapdrop.
<br>
<br>
<a href="https://github.com/schlagmichdoch/PairDrop/issues">Report a bug</a> <a href="https://github.com/schlagmichdoch/PairDrop/issues">Report a bug</a>
<br /> <br />
<a href="https://github.com/schlagmichdoch/PairDrop/issues">Request feature</a> <a href="https://github.com/schlagmichdoch/PairDrop/issues">Request feature</a>
</p> </p>
</div> </div>
<br>
## Features ## Features
File sharing on your local network that works on all platforms. File sharing on your local network that works on all platforms.

View file

@ -188,7 +188,7 @@ to learn more about STUN, TURN and WebRTC.
<br> <br>
Yes. Your files are sent using WebRTC, encrypting them in transit. Yes. Your files are sent using WebRTC, encrypting them in transit.
Still you have to trust the PairDrop server. To ensure the connection is secure and there is no [MITM](https://wikiless.org/wiki/Man-in-the-middle_attack) there is a plan to make PairDrop Still you have to trust the PairDrop server. To ensure the connection is secure and there is no [MITM](https://en.m.wikipedia.org/wiki/Man-in-the-middle_attack) there is a plan to make PairDrop
zero trust by encrypting the signaling and implementing a verification process. See [issue #180](https://github.com/schlagmichdoch/PairDrop/issues/180) to keep updated. zero trust by encrypting the signaling and implementing a verification process. See [issue #180](https://github.com/schlagmichdoch/PairDrop/issues/180) to keep updated.
<br> <br>

View file

@ -556,10 +556,6 @@ a2enmod proxy
a2enmod proxy_http a2enmod proxy_http
``` ```
```bash
a2enmod proxy_wstunnel
```
<br> <br>
Create a new configuration file under `/etc/apache2/sites-available` (on Debian) Create a new configuration file under `/etc/apache2/sites-available` (on Debian)
@ -570,18 +566,10 @@ Create a new configuration file under `/etc/apache2/sites-available` (on Debian)
```apacheconf ```apacheconf
<VirtualHost *:80> <VirtualHost *:80>
ProxyPass / http://127.0.0.1:3000/ ProxyPass / http://127.0.0.1:3000/ upgrade=websocket
RewriteEngine on
RewriteCond %{HTTP:Upgrade} websocket [NC]
RewriteCond %{HTTP:Connection} upgrade [NC]
RewriteRule ^/?(.*) "ws://127.0.0.1:3000/$1" [P,L]
</VirtualHost> </VirtualHost>
<VirtualHost *:443> <VirtualHost *:443>
ProxyPass / https://127.0.0.1:3000/ ProxyPass / https://127.0.0.1:3000/ upgrade=websocket
RewriteEngine on
RewriteCond %{HTTP:Upgrade} websocket [NC]
RewriteCond %{HTTP:Connection} upgrade [NC]
RewriteRule ^/?(.*) "wws://127.0.0.1:3000/$1" [P,L]
</VirtualHost> </VirtualHost>
``` ```
@ -592,11 +580,7 @@ Create a new configuration file under `/etc/apache2/sites-available` (on Debian)
Redirect permanent / https://127.0.0.1:3000/ Redirect permanent / https://127.0.0.1:3000/
</VirtualHost> </VirtualHost>
<VirtualHost *:443> <VirtualHost *:443>
ProxyPass / https://127.0.0.1:3000/ ProxyPass / http://127.0.0.1:3000/ upgrade=websocket
RewriteEngine on
RewriteCond %{HTTP:Upgrade} websocket [NC]
RewriteCond %{HTTP:Connection} upgrade [NC]
RewriteRule ^/?(.*) "wws://127.0.0.1:3000/$1" [P,L]
</VirtualHost> </VirtualHost>
``` ```

View file

@ -45,11 +45,11 @@ This pairdrop-cli version was released alongside v1.10.4
#### Linux / Mac #### Linux / Mac
1. Download the latest _pairdrop-cli.zip_ from the [releases page](https://github.com/schlagmichdoch/PairDrop/releases) 1. Download the latest _pairdrop-cli.zip_ from the [releases page](https://github.com/schlagmichdoch/PairDrop/releases)
```shell ```shell
wget "https://github.com/schlagmichdoch/PairDrop/releases/download/v1.10.9/pairdrop-cli.zip" wget "https://github.com/schlagmichdoch/PairDrop/releases/download/v1.10.10/pairdrop-cli.zip"
``` ```
or or
```shell ```shell
curl -LO "https://github.com/schlagmichdoch/PairDrop/releases/download/v1.10.9/pairdrop-cli.zip" curl -LO "https://github.com/schlagmichdoch/PairDrop/releases/download/v1.10.10/pairdrop-cli.zip"
``` ```
2. Unzip the archive to a folder of your choice e.g. `/usr/share/pairdrop-cli/` 2. Unzip the archive to a folder of your choice e.g. `/usr/share/pairdrop-cli/`
```shell ```shell

4
package-lock.json generated
View file

@ -1,12 +1,12 @@
{ {
"name": "pairdrop", "name": "pairdrop",
"version": "1.10.9", "version": "1.10.10",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "pairdrop", "name": "pairdrop",
"version": "1.10.9", "version": "1.10.10",
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
"express": "^4.18.2", "express": "^4.18.2",

View file

@ -1,6 +1,6 @@
{ {
"name": "pairdrop", "name": "pairdrop",
"version": "1.10.9", "version": "1.10.10",
"type": "module", "type": "module",
"description": "", "description": "",
"main": "server/index.js", "main": "server/index.js",

View file

@ -622,7 +622,7 @@
</svg> </svg>
<div class="title-wrapper" dir="ltr"> <div class="title-wrapper" dir="ltr">
<h1>PairDrop</h1> <h1>PairDrop</h1>
<div class="font-subheading">v1.10.9</div> <div class="font-subheading">v1.10.10</div>
</div> </div>
<div class="font-subheading" data-i18n-key="about.claim" data-i18n-attrs="text"></div> <div class="font-subheading" data-i18n-key="about.claim" data-i18n-attrs="text"></div>
<div class="row"> <div class="row">

View file

@ -26,8 +26,6 @@
} }
], ],
"background_color": "#efefef", "background_color": "#efefef",
"start_url": "/",
"scope": "/",
"display": "minimal-ui", "display": "minimal-ui",
"theme_color": "#3367d6", "theme_color": "#3367d6",
"screenshots" : [ "screenshots" : [

View file

@ -2101,7 +2101,7 @@ class ReceiveTextDialog extends Dialog {
let linkNodePlaceholder = `${p}${m}`; let linkNodePlaceholder = `${p}${m}`;
// add linkNodePlaceholder to text node and save a reference to linkNodes object // add linkNodePlaceholder to text node and save a reference to linkNodes object
linkNodes[linkNodePlaceholder] = `<a href="${link}" target="_blank">${url}</a>`; linkNodes[linkNodePlaceholder] = `<a href="${link}" target="_blank" rel="noreferrer">${url}</a>`;
return `${whitespaceOrSpecial}${linkNodePlaceholder}`; return `${whitespaceOrSpecial}${linkNodePlaceholder}`;
} }
// link is not valid -> do not replace // link is not valid -> do not replace

View file

@ -477,13 +477,16 @@ function getThumbnailAsDataUrl(file, width = undefined, height = undefined, qual
return new Promise(async (resolve, reject) => { return new Promise(async (resolve, reject) => {
try { try {
if (file.type === "image/heif" || file.type === "image/heic") { if (file.type === "image/heif" || file.type === "image/heic") {
// browsers can't show heic files --> convert to jpeg before creating thumbnail // hotfix: Converting heic images taken on iOS 18 crashes page. Waiting for PR #350
let blob = await fileToBlob(file); reject(new Error(`Hotfix: Converting of HEIC/HEIF images currently disabled.`));
file = await heic2any({ return;
blob, // // browsers can't show heic files --> convert to jpeg before creating thumbnail
toType: "image/jpeg", // let blob = await fileToBlob(file);
quality: quality // file = await heic2any({
}); // blob,
// toType: "image/jpeg",
// quality: quality
// });
} }
let imageUrl = URL.createObjectURL(file); let imageUrl = URL.createObjectURL(file);

View file

@ -1,4 +1,4 @@
const cacheVersion = 'v1.10.9'; const cacheVersion = 'v1.10.10';
const cacheTitle = `pairdrop-cache-${cacheVersion}`; const cacheTitle = `pairdrop-cache-${cacheVersion}`;
const forceFetch = false; // FOR DEVELOPMENT: Set to true to always update assets instead of using cached versions const forceFetch = false; // FOR DEVELOPMENT: Set to true to always update assets instead of using cached versions
const relativePathsToCache = [ const relativePathsToCache = [