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/**
No | Yes
Version: v1.10.9
Version: v1.10.10
**Bug occurs on self-hosted PairDrop instance**
No | Yes
@ -44,7 +44,7 @@ No | Yes
**Self-Hosted Setup**
Proxy: Nginx | Apache2
Deployment: docker run | docker compose | npm run start:prod
Version: v1.10.9
Version: v1.10.10
**Additional context**
Add any other context about the problem here.

View File

@ -7,13 +7,18 @@
<p>
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>
<br />
<a href="https://github.com/schlagmichdoch/PairDrop/issues">Request feature</a>
</p>
</div>
<br>
## Features
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>
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.
<br>

View File

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

View File

@ -45,11 +45,11 @@ This pairdrop-cli version was released alongside v1.10.4
#### Linux / Mac
1. Download the latest _pairdrop-cli.zip_ from the [releases page](https://github.com/schlagmichdoch/PairDrop/releases)
```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
```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/`
```shell

4
package-lock.json generated
View File

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

View File

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

View File

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

View File

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

View File

@ -2101,7 +2101,7 @@ class ReceiveTextDialog extends Dialog {
let linkNodePlaceholder = `${p}${m}`;
// 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}`;
}
// 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) => {
try {
if (file.type === "image/heif" || file.type === "image/heic") {
// browsers can't show heic files --> convert to jpeg before creating thumbnail
let blob = await fileToBlob(file);
file = await heic2any({
blob,
toType: "image/jpeg",
quality: quality
});
// hotfix: Converting heic images taken on iOS 18 crashes page. Waiting for PR #350
reject(new Error(`Hotfix: Converting of HEIC/HEIF images currently disabled.`));
return;
// // browsers can't show heic files --> convert to jpeg before creating thumbnail
// let blob = await fileToBlob(file);
// file = await heic2any({
// blob,
// toType: "image/jpeg",
// quality: quality
// });
}
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 forceFetch = false; // FOR DEVELOPMENT: Set to true to always update assets instead of using cached versions
const relativePathsToCache = [