mirror of
https://github.com/schlagmichdoch/PairDrop.git
synced 2026-04-06 09:53:49 +00:00
Compare commits
10 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3fa0873bc4 | ||
|
|
a03482bc7f | ||
|
|
40aa46fdd9 | ||
|
|
9003094e49 | ||
|
|
0459a361c3 | ||
|
|
10a669d7c6 | ||
|
|
3fbca72d74 | ||
|
|
59360fb047 | ||
|
|
2e15a018da | ||
|
|
041261be2a |
4
.github/ISSUE_TEMPLATE/bug-report.md
vendored
4
.github/ISSUE_TEMPLATE/bug-report.md
vendored
@@ -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.5
|
||||
Version: v1.10.6
|
||||
|
||||
**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.5
|
||||
Version: v1.10.6
|
||||
|
||||
**Additional context**
|
||||
Add any other context about the problem here.
|
||||
|
||||
@@ -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.5/pairdrop-cli.zip"
|
||||
wget "https://github.com/schlagmichdoch/PairDrop/releases/download/v1.10.6/pairdrop-cli.zip"
|
||||
```
|
||||
or
|
||||
```shell
|
||||
curl -LO "https://github.com/schlagmichdoch/PairDrop/releases/download/v1.10.5/pairdrop-cli.zip"
|
||||
curl -LO "https://github.com/schlagmichdoch/PairDrop/releases/download/v1.10.6/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
4
package-lock.json
generated
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "pairdrop",
|
||||
"version": "1.10.5",
|
||||
"version": "1.10.6",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "pairdrop",
|
||||
"version": "1.10.5",
|
||||
"version": "1.10.6",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"express": "^4.18.2",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "pairdrop",
|
||||
"version": "1.10.5",
|
||||
"version": "1.10.6",
|
||||
"type": "module",
|
||||
"description": "",
|
||||
"main": "server/index.js",
|
||||
|
||||
@@ -139,7 +139,7 @@
|
||||
<div class="edit-btn btn btn-small btn-rounded btn-dark text-white" data-i18n-key="header.edit-share-mode" data-i18n-attrs="text" hidden></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="websocket-fallback" hidden>
|
||||
<div id="websocket-fallback" class="text-center" hidden>
|
||||
<span data-i18n-key="footer.traffic" data-i18n-attrs="text"></span>
|
||||
<span data-i18n-key="footer.routed" data-i18n-attrs="text"></span>
|
||||
<span data-i18n-key="footer.webrtc" data-i18n-attrs="text"></span>
|
||||
@@ -582,7 +582,7 @@
|
||||
</svg>
|
||||
<div class="title-wrapper" dir="ltr">
|
||||
<h1>PairDrop</h1>
|
||||
<div class="font-subheading">v1.10.5</div>
|
||||
<div class="font-subheading">v1.10.6</div>
|
||||
</div>
|
||||
<div class="font-subheading" data-i18n-key="about.claim" data-i18n-attrs="text"></div>
|
||||
<div class="row">
|
||||
|
||||
@@ -69,7 +69,9 @@
|
||||
"language-selector_title": "Atur Bahasa",
|
||||
"about_title": "Tentang PairDrop",
|
||||
"about_aria-label": "Buka Tentang PairDrop",
|
||||
"theme-light_title": "Selalu gunakan tema terang"
|
||||
"theme-light_title": "Selalu gunakan tema terang",
|
||||
"edit-share-mode": "Sunting",
|
||||
"expand_title": "Perluas baris tombol header"
|
||||
},
|
||||
"instructions": {
|
||||
"x-instructions_mobile": "Ketuk untuk mengirim file atau ketuk lama untuk mengirim pesan",
|
||||
@@ -83,7 +85,11 @@
|
||||
"no-peers-title": "Buka PairDrop di perangkat lain untuk berkirim file",
|
||||
"x-instructions_data-drop-peer": "Lepaskan untuk mengirim ke rekan",
|
||||
"x-instructions_data-drop-bg": "Lepaskan untuk memilih penerima",
|
||||
"no-peers_data-drop-bg": "Lepaskan untuk memilih penerima"
|
||||
"no-peers_data-drop-bg": "Lepaskan untuk memilih penerima",
|
||||
"activate-share-mode-and-other-file": "dan 1 file lainnya",
|
||||
"activate-share-mode-shared-file": "file yang dibagikan",
|
||||
"activate-share-mode-shared-files-plural": "{{count}} file yang dibagikan",
|
||||
"webrtc-requirement": "Untuk menggunakan instance PairDrop ini, WebRTC harus diaktifkan!"
|
||||
},
|
||||
"peer-ui": {
|
||||
"processing": "Memproses…",
|
||||
@@ -111,7 +117,7 @@
|
||||
"join": "Gabung",
|
||||
"title-image-plural": "Gambar",
|
||||
"send": "Kirim",
|
||||
"base64-tap-to-paste": "Ketuk di sini untuk menempelkan {{type}}",
|
||||
"base64-tap-to-paste": "Ketuk di sini untuk membagikan{{type}}",
|
||||
"base64-text": "teks",
|
||||
"copy": "Salin",
|
||||
"file-other-description-image": "dan 1 gambar lainnya",
|
||||
@@ -125,7 +131,7 @@
|
||||
"title-image": "Gambar",
|
||||
"file-other-description-file-plural": "dan {{count}} file lainnya",
|
||||
"would-like-to-share": "ingin berbagi",
|
||||
"send-message-to": "Kirim pesan ke",
|
||||
"send-message-to": "Ke:",
|
||||
"language-selector-title": "Pilih Bahasa",
|
||||
"pair": "Pasangkan",
|
||||
"hr-or": "ATAU",
|
||||
@@ -144,7 +150,11 @@
|
||||
"enter-room-id-from-another-device": "Masukkan room ID dari perangkat lain untuk bergabung dengan room.",
|
||||
"message_title": "Masukkan pesan untuk dikirim",
|
||||
"pair-devices-qr-code_title": "Klik untuk menyalin tautan untuk memasangkan perangkat ini",
|
||||
"public-room-qr-code_title": "Klik untuk menyalin tautan ke ruang publik"
|
||||
"public-room-qr-code_title": "Klik untuk menyalin tautan ke ruang publik",
|
||||
"base64-title-files": "Bagikan File",
|
||||
"base64-title-text": "Bagikan Teks",
|
||||
"message_placeholder": "Teks",
|
||||
"paired-device-removed": "Perangkat yang dipasangkan telah dihapus."
|
||||
},
|
||||
"about": {
|
||||
"claim": "Cara termudah untuk mentransfer file lintas perangkat",
|
||||
|
||||
@@ -69,7 +69,9 @@
|
||||
"language-selector_title": "言語を設定",
|
||||
"about_title": "PairDropについて",
|
||||
"about_aria-label": "PairDropについてを開く",
|
||||
"theme-light_title": "常にライトテーマを使用する"
|
||||
"theme-light_title": "常にライトテーマを使用する",
|
||||
"edit-share-mode": "編集",
|
||||
"expand_title": "ヘッダーボタン列を拡大する"
|
||||
},
|
||||
"instructions": {
|
||||
"x-instructions_mobile": "タップしてファイルを送信または長押ししてメッセージを送信します",
|
||||
@@ -83,7 +85,11 @@
|
||||
"no-peers-title": "他のデバイスでPairDropを開いてファイルを送信します",
|
||||
"x-instructions_data-drop-peer": "離すとこの相手に送信します",
|
||||
"x-instructions_data-drop-bg": "送信したい相手の上で離してください",
|
||||
"no-peers_data-drop-bg": "送信したい相手の上で離してください"
|
||||
"no-peers_data-drop-bg": "送信したい相手の上で離してください",
|
||||
"activate-share-mode-and-other-file": "もう1つの別のファイル",
|
||||
"activate-share-mode-shared-file": "共有されたファイル",
|
||||
"activate-share-mode-shared-files-plural": "{{count}}個の共有されたファイル",
|
||||
"webrtc-requirement": "このPairDropインスタンスを使用するには、WebRTCを有効にする必要があります!"
|
||||
},
|
||||
"peer-ui": {
|
||||
"processing": "処理中…",
|
||||
@@ -144,7 +150,16 @@
|
||||
"enter-room-id-from-another-device": "他のデバイスに表示された参加したいルームのIDを入力します。",
|
||||
"message_title": "送信するメッセージを挿入",
|
||||
"pair-devices-qr-code_title": "クリックしてこのデバイスをペア設定するリンクをコピー",
|
||||
"public-room-qr-code_title": "クリックしてパブリックルームへのリンクをコピー"
|
||||
"public-room-qr-code_title": "クリックしてパブリックルームへのリンクをコピー",
|
||||
"paired-device-removed": "ペア設定されたデバイスが削除されました。",
|
||||
"message_placeholder": "テキスト",
|
||||
"base64-title-files": "共有されたファイル",
|
||||
"base64-title-text": "テキストを共有",
|
||||
"approve": "承諾",
|
||||
"share-text-subtitle": "送信する前にメッセージを編集する:",
|
||||
"share-text-checkbox": "テキストを共有するときに常にこのダイアログを表示する",
|
||||
"close-toast_title": "通知を閉じる",
|
||||
"share-text-title": "テキストメッセージを共有します"
|
||||
},
|
||||
"about": {
|
||||
"claim": "デバイス間でファイルを転送する最も簡単な方法",
|
||||
@@ -152,7 +167,11 @@
|
||||
"close-about_aria-label": "PairDropについてを閉じる",
|
||||
"buy-me-a-coffee_title": "コーヒーをおごってください!",
|
||||
"github_title": "GitHubでPairDropを見る",
|
||||
"faq_title": "FAQ"
|
||||
"faq_title": "FAQ",
|
||||
"mastodon_title": "MastodonにPairDropについて書く",
|
||||
"bluesky_title": "BlueSkyでフォロー",
|
||||
"custom_title": "フォロー",
|
||||
"privacypolicy_title": "プライバシーポリシーを開く"
|
||||
},
|
||||
"document-titles": {
|
||||
"file-transfer-requested": "ファイルの転送がリクエストされました",
|
||||
|
||||
@@ -12,7 +12,8 @@
|
||||
"cancel-share-mode": "Bitti",
|
||||
"join-public-room_title": "Geçici olarak genel odaya katılın",
|
||||
"language-selector_title": "Dili Seç",
|
||||
"edit-share-mode": "Düzenle"
|
||||
"edit-share-mode": "Düzenle",
|
||||
"expand_title": "Başlık düğmesi satırını genişlet"
|
||||
},
|
||||
"instructions": {
|
||||
"no-peers_data-drop-bg": "Alıcıyı seçmek için bırakın",
|
||||
@@ -166,7 +167,11 @@
|
||||
"close-about_aria-label": "PairDrop Hakkında'yı Kapat",
|
||||
"buy-me-a-coffee_title": "Bana bir kahve al!",
|
||||
"github_title": "GitHub'da PairDrop",
|
||||
"faq_title": "Sıkça sorulan sorular"
|
||||
"faq_title": "Sıkça sorulan sorular",
|
||||
"custom_title": "Bizi takip edin",
|
||||
"privacypolicy_title": "Gizlilik politikamızı açın",
|
||||
"mastodon_title": "Mastodon'da PairDrop hakkında yazın",
|
||||
"bluesky_title": "Bizi BlueSky'da takip edin"
|
||||
},
|
||||
"document-titles": {
|
||||
"file-transfer-requested": "Dosya Transferi Talep Edildi",
|
||||
|
||||
@@ -2019,8 +2019,8 @@ class ReceiveTextDialog extends Dialog {
|
||||
if (text.length < 2000) {
|
||||
// replace URLs with actual links
|
||||
this.$text.innerHTML = this.$text.innerHTML
|
||||
.replace(/(^|(?<=(<br>|\s)))(https?:\/\/|www.)(([a-z]|[A-Z]|[0-9]|[\-_~:\/?#\[\]@!$&'()*+,;=%]){2,}\.)(([a-z]|[A-Z]|[0-9]|[\-_~:\/?#\[\]@!$&'()*+,;=%.]){2,})/g,
|
||||
(url) => {
|
||||
.replace(/(^|<br>|\s|")((https?:\/\/|www.)(([a-z]|[A-Z]|[0-9]|[\-_~:\/?#\[\]@!$&'()*+,;=%]){2,}\.)(([a-z]|[A-Z]|[0-9]|[\-_~:\/?#\[\]@!$&'()*+,;=%.]){2,}))/g,
|
||||
(match, whitespace, url) => {
|
||||
let link = url;
|
||||
|
||||
// prefix www.example.com with http protocol to prevent it from being a relative link
|
||||
@@ -2028,7 +2028,13 @@ class ReceiveTextDialog extends Dialog {
|
||||
link = "http://" + link
|
||||
}
|
||||
|
||||
return `<a href="${link}" target="_blank">${url}</a>`;
|
||||
// Check if link is valid
|
||||
if (isUrlValid(link)) {
|
||||
return `${whitespace}<a href="${link}" target="_blank">${url}</a>`;
|
||||
}
|
||||
else {
|
||||
return match;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -583,4 +583,14 @@ async function decodeBase64Text(base64) {
|
||||
if (!base64) throw new Error('Base64 is empty');
|
||||
|
||||
return decodeURIComponent(escape(window.atob(base64)))
|
||||
}
|
||||
|
||||
function isUrlValid(url) {
|
||||
try {
|
||||
let urlObj = new URL(url);
|
||||
return true;
|
||||
}
|
||||
catch (e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
const cacheVersion = 'v1.10.5';
|
||||
const cacheVersion = 'v1.10.6';
|
||||
const cacheTitle = `pairdrop-cache-${cacheVersion}`;
|
||||
const forceFetch = false; // FOR DEVELOPMENT: Set to true to always update assets instead of using cached versions
|
||||
const relativePathsToCache = [
|
||||
@@ -193,7 +193,7 @@ const evaluateRequestData = function (request) {
|
||||
|
||||
const objectStoreRequest = objectStore.add(fileObjects[i]);
|
||||
objectStoreRequest.onsuccess = _ => {
|
||||
if (i === fileObjects.length - 1) resolve(pairDropUrl + '?share-target=files');
|
||||
if (i === fileObjects.length - 1) resolve(pairDropUrl + '?share_target=files');
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -202,7 +202,7 @@ const evaluateRequestData = function (request) {
|
||||
}
|
||||
}
|
||||
else {
|
||||
let urlArgument = '?share-target=text';
|
||||
let urlArgument = '?share_target=text';
|
||||
|
||||
if (title) urlArgument += `&title=${title}`;
|
||||
if (text) urlArgument += `&text=${text}`;
|
||||
|
||||
Reference in New Issue
Block a user